Четверг, 18 Апреля 2024, 20:24

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как получить переменную с сайта (Хостинга)?
Как получить переменную с сайта (Хостинга)?
xxxlioДата: Среда, 06 Июня 2018, 20:02 | Сообщение # 1
частый гость
Сейчас нет на сайте
Сильно упростил код, что бы вам было проще.
Есть такой код в юньки:

C#
using UnityEngine;
using System.Collections;

public class Zapis_v_BD : MonoBehaviour {

private string username = "Aleksey"; //Переменная для хранения имени
private string url = "http://localhost/game/connect.php"; //Переменная для хранения адреса

void Connect()
{
WWWForm form = new WWWForm(); //Создаём новую форму

form.AddField("username", username);

WWW connect = new WWW(url, form);

}

void Update() {


if(Input.GetKey(KeyCode.Space))

Connect();
}
}

При нажатии на пробел переменную username мы отправляем скрипту connect.php, который к примеру выглядит вот так:

PHP
<?php
$username = $_REQUEST['username'];

$text .= "$username
";

$file = fopen ("index.php", "w+");
fwrite ($file,$text);
fclose ($file);
?>

То есть просто записывает данную переменную в файл index.php

Теперь вопрос, как мне снова достать ее из файла index.php и получить ее в юнити?
К примеру в каком то другом скрипте на C#?

Добавлено через 3 минуты
Можно записать ее не как строку, а как переменную, получиться файл что то типа этого:

PHP
<?php
username = "Aleksey";
?>

Как мне теперь из юнити подключиться к данному файлу и получить переменную?
drcrackДата: Среда, 06 Июня 2018, 21:54 | Сообщение # 2
старожил
Сейчас нет на сайте
Зачем записывать данные в index.php?? O_O чтобы потом было веселее парсить? :D
почему нельзя записать в username.txt и просто прочитать его целиком с помощью new WWW()
xxxlioДата: Четверг, 07 Июня 2018, 11:23 | Сообщение # 3
частый гость
Сейчас нет на сайте
Цитата drcrack ()
прочитать его целиком с помощью new WWW()

Как? Знаю, что в txt лучше. Как прочитать файл в C#???
drcrackДата: Четверг, 07 Июня 2018, 11:52 | Сообщение # 4
старожил
Сейчас нет на сайте
Код
new WWW("http://gcup.ru/robots.txt");

Все есть в документации: https://docs.unity3d.com/ScriptReference/WWW.html
xxxlioДата: Четверг, 07 Июня 2018, 11:57 | Сообщение # 5
частый гость
Сейчас нет на сайте
Она на английском. Я не понимаю, вам трудно 2 строчки кода подсказать? Два дня уже бьюсь...
new WWW("http://gcup.ru/robots.txt"); - вот я подключился, как мне в переменную записать первую строчку из файла?
name =???
drcrackДата: Четверг, 07 Июня 2018, 12:05 | Сообщение # 6
старожил
Сейчас нет на сайте
Код
IEnumerator LoadName() {
  var www = new WWW("http://gcup.ru/robots.txt");
  while (!www.isDone) yield return null;
  var name = www.text;
  Debug.Log(name);
}
StartCoroutine(LoadName());


Цитата
Она на английском.

https://lingualeo.com/
https://translate.google.com/


Сообщение отредактировал drcrack - Четверг, 07 Июня 2018, 12:09
xxxlioДата: Четверг, 07 Июня 2018, 12:52 | Сообщение # 7
частый гость
Сейчас нет на сайте
Да, спасибо огромное. Последний вопрос и я отстану :)
В данном примере переменная name принимает значение первой строчки файла. А как получить несколько строчек? Например
первая name = www.text;
Вторая hp = ...
VostruginДата: Четверг, 07 Июня 2018, 12:58 | Сообщение # 8
постоянный участник
Сейчас нет на сайте
xxxlio, сериализуйте данные на стороне сервера в json. В юнити забираете данные и десериализуете.



drcrackДата: Четверг, 07 Июня 2018, 13:01 | Сообщение # 9
старожил
Сейчас нет на сайте
Цитата
В данном примере переменная name принимает значение первой строчки файла.

Это не так, в переменной весь файл с начала до конца
Другой вопрос что у тебя в консоли может быть видно только первую строчку

Цитата
первая name = www.text;
Вторая hp = ...

https://msdn.microsoft.com/ru-ru/library/system.string.split.aspx

PS
Цитата
xxxlio, сериализуйте данные на стороне сервера в json. В юнити забираете данные и десериализуете.

ты обрекаешь себя на кучу глупых вопросов :D


Сообщение отредактировал drcrack - Четверг, 07 Июня 2018, 13:01
xxxlioДата: Четверг, 07 Июня 2018, 13:10 | Сообщение # 10
частый гость
Сейчас нет на сайте
А по строкам разве нельзя этот файл прочитать? Например

StreamReader streamReader = new StreamReader("save.txt"); // Открываем файл

while (!streamReader.EndOfStream) // Читаем строки пока они не закончатся
{
x = System.Convert.ToSingle(streamReader.ReadLine());
y = System.Convert.ToSingle(streamReader.ReadLine());
z = System.Convert.ToSingle(streamReader.ReadLine());
}
GameObject Player = (GameObject)Instantiate (player, new Vector3 (x, y, z), Quaternion.identity);

Но это подходит только если файл на компьютере.
drcrackДата: Четверг, 07 Июня 2018, 13:15 | Сообщение # 11
старожил
Сейчас нет на сайте
ну можешь записать www.text в файл и потом прочитать по строкам
мне кажется это решение отлично впишется в архитектуру твоей игры
xxxlioДата: Четверг, 07 Июня 2018, 19:43 | Сообщение # 12
частый гость
Сейчас нет на сайте
А можно таким способом вывести целую страницу сайта? Например сделать окошко в игре и пряма с сайта выводить туда какие то новости?
drcrackДата: Пятница, 08 Июня 2018, 02:45 | Сообщение # 13
старожил
Сейчас нет на сайте
можно, но стандартный Text поддерживает всего несколько тегов вроде <b> <i> и еще несколько других, для полноценного сайта его явно не хватит
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как получить переменную с сайта (Хостинга)?
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг