Страница 2 из 3

Re: Я чего-то недопонимаю в работе корутин?

СообщениеДобавлено: 23 мар 2017, 00:35
LordWerewolf
Да... вообще-то он изначально так и был определен. Это уже в процессе извращения и головоломания я стал определять connect в самой функции. Врятли проблема в этом, потому как код даже не заходит в корутину. Если Вы заметили, то первая строчка в корутине - Debug.Log("Подключаем сокет..."); , но в консоли это сообщение не появляется. Так что до yield код никак не доберется...

Re: Я чего-то недопонимаю в работе корутин?

СообщениеДобавлено: 23 мар 2017, 00:48
LordWerewolf
а проверял вот так:
http://www.picshare.ru/view/7990367/

Re: Я чего-то недопонимаю в работе корутин?

СообщениеДобавлено: 23 мар 2017, 09:48
seaman
Это Моно? Вам не смущает null на картинке?
Ну и все же перестаньте создавать MonoBehaviour скрипты через new!

Re: Я чего-то недопонимаю в работе корутин?

СообщениеДобавлено: 23 мар 2017, 11:03
LordWerewolf
Это визуал студио. Я код в нем пишу. Как видно на картинке, connect не пустой и является экземпляром ConnectToServer. А строка null, которую Вы упомянули, это строка возвращает ответ от сервера. Она может быть пустой - пока сервер молчит. Проблема точно не в ней.

P.S./... и что криминального в создании через new?

Re: Я чего-то недопонимаю в работе корутин?

СообщениеДобавлено: 23 мар 2017, 15:05
seaman
и что криминального в создании через new?

То что это четко прописано в мануале:
your code will never directly create a Component. Instead, you write script code, and attach the script to a GameObject

https://docs.unity3d.com/ScriptReference/Component.html

Re: Я чего-то недопонимаю в работе корутин?

СообщениеДобавлено: 23 мар 2017, 15:45
LordWerewolf
Понятно. Как-то я это проглядел.
Как же мне тогда создать новый экземпляр и передать в его конструктор определенные данные, если ни new ни конструктором в скриптах пользоваться нельзя? :-?

Re: Я чего-то недопонимаю в работе корутин?

СообщениеДобавлено: 23 мар 2017, 15:49
DbIMok
убрать наследование от MonoBehaviour

Re: Я чего-то недопонимаю в работе корутин?

СообщениеДобавлено: 23 мар 2017, 16:08
LordWerewolf
а если в этом скрипте есть функции вызывающие корутины, то без привязки к MonoBehaviour их будет нельзя запустить?

Re: Я чего-то недопонимаю в работе корутин?

СообщениеДобавлено: 23 мар 2017, 16:20
seaman
Прикрепляйте скрипт к объекту в сцене AddComponent

Re: Я чего-то недопонимаю в работе корутин?

СообщениеДобавлено: 23 мар 2017, 17:23
LordWerewolf
seaman писал(а):Прикрепляйте скрипт к объекту в сцене AddComponent

Это я в курсе, я не совсем понимаю как передать параметры этому объекту... Ну вот например:
В C# нужно создать экземпляр объекта User с входными данными (имя, фамилия, пол, возраст и т.д.) Причем создается этот экземпляр только после получения этих входных параметров с сервера.
тоесть как-то так:
Синтаксис:
Используется csharp
Class User
{
public User(string name, string secondname, char pol, byte age);
}
//... и создаем юзера
User user = new User("Вася", "Пупкин", 'm', 20);
 


Как в юньке сделать подобное? Перетащить скрипт User на пустой объект в сцене? Ну создаст он экземпляр, но пустой, без параметров. Или при получении параметров от сервера нужно будет сделать Instance этого экземпляра и затем вручную указать для каждого параметра полученные данные с севера? Как-то это замудренно слишком...

Re: Я чего-то недопонимаю в работе корутин?

СообщениеДобавлено: 23 мар 2017, 18:10
seaman
Синтаксис:
Используется csharp
public class User : MonoBehaviour
{
   private string __name;
   private string __family;
   private bool __gender;
   private int __age;

   public void Init(string name, string family, bool gender, int age)
   {...}
}
...
GameObject users;

var user = users.AddComponent<User>();
user.Init("Вася", "Пупкин", tru, 20);

Re: Я чего-то недопонимаю в работе корутин?

СообщениеДобавлено: 23 мар 2017, 19:20
Tolking
Не нужно этот класс делать компонентом!

Re: Я чего-то недопонимаю в работе корутин?

СообщениеДобавлено: 23 мар 2017, 19:34
LordWerewolf
Спасибо, буду знать. А как быть с переходом на новую сцену? В каждой сцене создавать новый объект со скриптом или можно как-то перенести старый в другую сцену? Или вообще использовать его как static? Вообще при переходе в другую сцену объекты со старой убиваются или остаются в памяти и к ним можно обратиться?

Re: Я чего-то недопонимаю в работе корутин?

СообщениеДобавлено: 23 мар 2017, 19:36
LordWerewolf
Tolking писал(а):Не нужно этот класс делать компонентом!

Почему? Вроде логично...

Re: Я чего-то недопонимаю в работе корутин?

СообщениеДобавлено: 23 мар 2017, 20:10
LordWerewolf
Чтож, я избавился от монобех, вызванных new, но корутина все равно не запускается больше 1 раза. В чем еще может быть проблема? :-?