Как получить переменную с сайта (Хостинга)?
|
|
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 чтобы потом было веселее парсить? почему нельзя записать в 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. В юнити забираете данные и десериализуете. ты обрекаешь себя на кучу глупых вопросов
Сообщение отредактировал 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> и еще несколько других, для полноценного сайта его явно не хватит
|
|
| |