| 
				
				правильное получение информации из БД(web)
				 |   |  
| d0x | Дата: Четверг, 06 Апреля 2017, 16:09 | Сообщение # 1 |  
| 
 частый гость 
Сейчас нет на сайте 
 
 | Приветствую. Помогите разобраться с выводом информации из БД. Хочу сделать в отдельной сцене вывод информации из полученного скрипта php, делаю таким образом:
 Код          private string categoriya = "info";     private string url = "http://сайт/show_info.php"; //Переменная для хранения адреса     public List<string> nameUI = new List<string>();     //public List<string> opisanieUI = new List<string>();     //public List<string> priceUI = new List<string>();     //private string cartinLink;     //public RawImage imageUI;     private bool check;
      public IEnumerator Connects(string online)     {   if (online == "ok") {    WWWForm form = new WWWForm ();    form.AddField ("categoriya", categoriya);    WWW connectW = new WWW (url, form);    yield return connectW;    if (connectW.isDone) {     string[] arr = connectW.text.Split('+'); //тут парсинг полученной строки, разделяю строку с помощью +
      for(int i=0; i < 20; i++) {      nameUI[i] = arr[i];      check = true;     }
     }    else if (connectW.error == null) {     Debug.Log ("Ошибка подключения, проверьте интернет соединение!");    }   }     }     void OnGUI()     {   if (check) {    for (int i = 0; i < nameUI.Count; i++)    {     GUI.Label (new Rect (10, 10*i*i, 250, 100), " " + nameUI[i]);    }   }     }
      void Start() {   StartCoroutine(Connects("ok"));     }
 
 
  код ужасный я понимаю) много ошибок и т.д. я хочу понять как сделать логику правильно, а потом доводить его до ума.
  код на сайте:
 
 Код  $categoriya = $_REQUEST['categoriya'];
  if($categoriya == "info") {
  $result = mysql_query("SELECT name,opisanie,price FROM images"); if($result) {
  while ($rows = mysql_fetch_array($result))     {                 echo "+Имя: ".$rows['name'];   echo "+Описание: ".$rows['opisanie'];   echo "+Цена: ".$rows['price'];     } } } mysql_close();
 
 
  выводит информацию в сцену, но нужно чтобы при добавлению данных в БД на сайте, автоматически в сцене добавлялась информация как на скриншоте prntscr.com/et5qrs
  есть 1,2,3,4 когда добавиться в БД еще информация по 2м товарам, они как на скрине добавляются в 5,6 и т.д.... Подтолкните куда копать?)
 
 Сообщение отредактировал d0x - Четверг, 06 Апреля 2017, 17:53  |  
| 
 | 
 |    |  
| Xakep | Дата: Четверг, 06 Апреля 2017, 19:03 | Сообщение # 2 |  
 
めちゃくちゃちゃ 
Сейчас нет на сайте 
 
 | Цитата d0x (  )    Подтолкните куда копать?)   Если я правильно понял, то тебе копать в сторону соккетов.
 |  
| 
 | 
 |    |  
| d0x | Дата: Суббота, 08 Апреля 2017, 00:17 | Сообщение # 3 |  
| 
 частый гость 
Сейчас нет на сайте 
 
 | Цитата Xakep (  )   Если я правильно понял, то тебе копать в сторону соккетов.   это можно, но все равно будет вопрос как полученную информацию распределить как список. Допустим хоть через сокет, хоть через WWW я получу информацию из БД, но как мне выставлять автоматически список информации как тут http://prntscr.com/et5qrs в 5 и 6 на скрине, если до этого там было пусто. Информацию я получаю, не получается именно выравнивать это что ли))) Пример в тексте: 1 - Информация по товару( имя, описание, цена ) 2 - Информация по товару( имя, описание, цена ) 3 - Информация по товару( имя, описание, цена ) 4 - Информация по товару( имя, описание, цена ) 5 - тут нет ничего 6 - тут нет ничего 7 - тут нет ничего 8 - тут нет ничего ..... .....
  там где "тут нет ничего" вставляются данные( не динамически ) которые добавляются в БД на сервере.
  У меня в данный момент в БД 2 информации по 2-м товарам , мне даже не получается нормально вывести так:
  1 - Информация по товару( имя, описание, цена ) 2 - Информация по товару( имя, описание, цена )
  У меня вообще выводится криво как то все... Объясните пожалуйста как работать правильно с полученной информацией + UI(а именно Text)
  Понимаю что это нужно делать в циклах..но как правильно...
  Вроде бы расписал проблему)Добавлено (08 апреля 2017, 00:17) --------------------------------------------- никто не подскажет?(( 
 
 Сообщение отредактировал d0x - Четверг, 06 Апреля 2017, 22:48  |  
| 
 | 
 |    |  
| Эргалон | Дата: Суббота, 08 Апреля 2017, 11:49 | Сообщение # 4 |  
 
Вездесущий 
Сейчас нет на сайте 
 
 | Почитай про POST/GET, а также про JSON.
  Кубариум   Rise of the dark lords
 |  
| 
 | 
 |    |  
| d0x | Дата: Суббота, 08 Апреля 2017, 13:08 | Сообщение # 5 |  
| 
 частый гость 
Сейчас нет на сайте 
 
 | Цитата Эргалон (  )   Почитай про POST/GET, а также про JSON.   Так я же информацию получаю нормально в unity, проблема именно работы с этой информацией в UI именно.
 |  
| 
 | 
 |    |  
| Эргалон | Дата: Суббота, 08 Апреля 2017, 13:34 | Сообщение # 6 |  
 
Вездесущий 
Сейчас нет на сайте 
 
 | d0x, Получать информацию
 Цитата  echo "+Имя: ".$rows['name'];  echo "+Описание: ".$rows['opisanie'];  echo "+Цена: ".$rows['price'];  В таком виде, это не нормально.
  Кубариум   Rise of the dark lords
 |  
| 
 | 
 |    |  
| d0x | Дата: Среда, 12 Апреля 2017, 14:02 | Сообщение # 7 |  
| 
 частый гость 
Сейчас нет на сайте 
 
 | Цитата Эргалон (  )   d0x, Получать информацию Цитата echo "+Имя: ".$rows['name']; echo "+Описание: ".$rows['opisanie']; echo "+Цена: ".$rows['price'];
  В таком виде, это не нормально.  
  Это да)) буду в json изменять, в коде вообще нужно много изменить... Но вот самое главное в данный момент - это именно правильно связать с UI(Text) это все...
  Добавлено (09 апреля 2017, 20:15) --------------------------------------------- С этим вопросом разобрался...в json гораздо удобнее) как и говорили.
  Теперь проблема в другом... Не могу вывести картинки. В бд к каждому товару есть картинки( линк на картинку), пробую по всякому..не получается...помогите) код:
 Код          private string categoriya = "40-50";     private string url = "http://сайт/show_info.php"; //Переменная для хранения адреса     public JSONObject JO;     public WWW connectW;     public Texture[] imgCor;     public List<string> linkList = new List<string>();
      void Start() {   WWWForm form = new WWWForm (); //Создаём новую форму   //Добавляем в форму новые данные   form.AddField ("categoriya", categoriya);   //Создаём новое подключение   connectW = new WWW (url, form);
      }
      void Update()     {      if (connectW != null && connectW.isDone) {    if(connectW.error == null) {     JO = new JSONObject(connectW.text);     connectW = null;    }     }     }
      public IEnumerator ConnectImage(string listy) {    WWW connectWImage = new WWW (listy.ToString ());    yield return connectWImage;    imgCor[0] = connectWImage.texture;     }
      void OnGUI()     {   if (JO != null) {    GUILayout.BeginArea (new Rect (10, 10, 1000, 1000));    foreach(var json in JO.list)    {          var data = json.ToDictionary ();
      for (int i = 0; i < 2; i++) {      linkList [i] = data ["link"].Replace ("\\", "");      }          GUILayout.Label(imgCor[0]);
      GUILayout.Label("Название: " + data["name"]);     GUILayout.Label("Описание: " + data["opisanie"]);     GUILayout.Label("Цена: " + data["price"]);     GUILayout.Label("Линк: " + data["link"]);
          }    StartCoroutine (ConnectImage(linkList[0]));    GUILayout.EndArea ();   }     }
 
 
 
  Добавлено (10 апреля 2017, 01:26) --------------------------------------------- получилось сделать циклами.. А теперь проблема в GUI... Не выводится(( в чем может быть проблема?
 Код void OnGUI()     {      if (JO != null) {    
     for (int i = 0; i < 1; i++) {     if (check2 == false) {         foreach (var json in JO.list) {      GUILayout.BeginArea (new Rect (10, 10, 1000, 1000));             var data = json.ToDictionary ();       linkList [i++] = data ["link"].Replace ("\\", "");            GUILayout.Label (imgCor [i]);       GUILayout.Label ("Название: " + data ["name"]);       GUILayout.Label ("Описание: " + data ["opisanie"]);       GUILayout.Label ("Цена: " + data ["price"]);       GUILayout.Label ("Линк: " + data ["link"]);
        StartCoroutine (ConnectImage(i));
        GUILayout.EndArea ();      }
       check2 = true;      }
     }
    }     } 
  Добавлено (12 апреля 2017, 14:02) --------------------------------------------- никто не подскажет как порядок сделать нормальный в UI? Сейчас товар добавляется лесенкой по вертикали...хотелось бы в 2 колонки.... где 1 - это есть товар, 0 - нет товара...пусто
  1 1 1 1 1 0 0 0 ...... и т.д.
  А сейчас
  1 1 1 0 0 ...............
 
 Сообщение отредактировал d0x - Среда, 12 Апреля 2017, 14:02  |  
| 
 | 
 |    |  
| Vinchensoo | Дата: Среда, 12 Апреля 2017, 19:58 | Сообщение # 8 |  
 
Злобный социопат с комплексом Бога 
Сейчас нет на сайте 
 
 | То, что тебе нужно- называется long pooling. Еще можно почитать про push notifications. Сокеты для этой задачи не нужны, будет сильно сложнее и не сильно лучше/быстрее.
 
  
 |  
| 
 | 
 |    |  
| Эргалон | Дата: Четверг, 13 Апреля 2017, 00:46 | Сообщение # 9 |  
 
Вездесущий 
Сейчас нет на сайте 
 
 | Цитата  никто не подскажет как порядок сделать нормальный в UI? Сейчас товар добавляется лесенкой по вертикали...хотелось бы в 2 колонки.... где 1 - это есть товар, 0 - нет товара...пусто  Не совсем понятно, что тебе надо. Любой элемент интерфейса имеет локальные/глобальные координаты, а также размеры, вот и располагай блоки с информацией, опираясь на эти данные.
  Кубариум   Rise of the dark lords
 
 Сообщение отредактировал Эргалон - Четверг, 13 Апреля 2017, 00:51  |  
| 
 | 
 |    |  
| d0x | Дата: Четверг, 13 Апреля 2017, 01:12 | Сообщение # 10 |  
| 
 частый гость 
Сейчас нет на сайте 
 
 | Цитата Эргалон (  )   Не совсем понятно, что тебе надо. Любой элемент интерфейса имеет локальные/глобальные координаты, а также размеры, вот и располагай блоки с информацией, опираясь на эти данные.  Верно, но координаты получается будут с каждым новым товаром разные, будут как бы сдвигаться вниз, соответственно по x и по y будут сдвигаться
 |  
| 
 | 
 |    |  
| Эргалон | Дата: Четверг, 13 Апреля 2017, 01:44 | Сообщение # 11 |  
 
Вездесущий 
Сейчас нет на сайте 
 
 | d0x, Ну они будут сдвигаться вниз, если ты так напишешь, то есть когда ты создаешь объект интерфейса программным путем, он по умолчанию находится в 0:0 координатах. Соответственно, с каждой новой записью, ты опускаешь блоки по Y. Если надо в 2 колонки, то проводишь сортировку, там где 1, смещение только по Y, там где 0, смещение по X и по Y. Ну вернее там где 1, может быть смещение и по X, если к примеру надо всё расположить в центре экрана. Ну в общем суть ты понял я думаю.
  Кубариум   Rise of the dark lords
 
 Сообщение отредактировал Эргалон - Четверг, 13 Апреля 2017, 01:46  |  
| 
 | 
 |    |  
| d0x | Дата: Пятница, 28 Апреля 2017, 21:32 | Сообщение # 12 |  
| 
 частый гость 
Сейчас нет на сайте 
 
 | я так понимаю нужно менять в GUILayout.BeginArea (new Rect (20*12*i, 10, 500, 900)); что то:
 Код  void OnGUI()     {      if (JO != null) {    
     for (int i = 0; i < 1; i++) {          foreach (var json in JO.list) {      GUILayout.BeginArea (new Rect (20*12*i, 10, 500, 900));   // Тут пробую ставить разные значения, все равно не та как нужно ставит( иногда лесенкой вниз, иногда по горизонтали...      scrollPosition = GUILayout.BeginScrollView (scrollPosition, GUILayout.Width (500), GUILayout.Height (900));
        var data = json.ToDictionary ();       linkList [i++] = data ["link"].Replace ("\\", "");
        GUILayout.Label (imgCor [i-1]);       GUILayout.Label ("Название: " + data ["name"]);       GUILayout.Label ("Описание: " + data ["opisanie"]);       GUILayout.Label ("Цена: " + data ["price"]);       GUILayout.Label ("\n");      if (check2 == false) {       StartCoroutine (ConnectImage(i));      }      GUILayout.EndScrollView ();      GUILayout.EndArea ();    }
     }    check2 = true;   
    }
      }
 
  помогите понять как именно сдвигать в две колонки вертикальныеДобавлено (14 апреля 2017, 22:12) --------------------------------------------- все еще нуждаюсь в помощи... пытаюсь как то сортировать, все равно сдвигаются сразу все товары... пробовал через четные нечетные... не понимаю, вроде и читал, именно про это нигде не нашел. Добавлено (16 апреля 2017, 23:53) --------------------------------------------- подскажите кто-нибудь...или как можно сделать альтернативный вариант с UI, точно такое же добавление информации. В ui вроде бы проще сделать такую сортировку... Но как добавлять(создавать) новый элемент UI...
  public List<Text> info; - тут допустим выровняю в 2 колонки и закину нужные элементы текста. Но как сделать их создание вниз по колонке? Instantiate ? Добавлено (28 апреля 2017, 21:32) --------------------------------------------- все еще не решил задачку( 
 
 Сообщение отредактировал d0x - Четверг, 13 Апреля 2017, 11:41  |  
| 
 | 
 |    |     
		
		 
 |