Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Unity (проблемы, решения, перспективы) (86 стр)

Unity (проблемы, решения, перспективы) (86 стр)

Страницы: 185 86 87 8890 Следующая »
MiraПостоялецwww22 дек. 201722:02#1275
alexzzzz
хммм норм,спасибо))
ты просто показывал простой менеджер ресов с Dictionary, так получается Dictionary там не нужен, ибо повторной загрузки все равно не будет.
разве что только для сортировок.
MiraПостоялецwww23 дек. 201711:07#1276
странная фигня, почему в некоторых случаях выводится только сообщение
от
EFIO.smessage("asyncload " + Parts[index].fname)
а дальше не выводится ничего и загрузка прекращается.
поидее request так или иначе должен принять состояние isDone, когда закончится удачно или не удачно. и потом в зависимости от бранчинга вывести следующее сообщение, но этого не поисходит.
что за хрень?)

PS мы исполняемся в корутине

+ Показать

Правка: 23 дек. 2017 14:32

HomeshipПостоялецwww28 дек. 201722:12#1277
Я тут нарыл один момент. Не уверен, что правильно понял происходящее, но сдается мне в Юньке есть некое ограничение по вложенности корутин. Особенно так выглядит если из корутин (которые могут быть запущены через yield-инструкцию из других корутин) запускаются корутины другого класса (через обычные публичные методы).

Ограничение вылазит в том, что перестают работать yield-инструкции. Т.е. корутина "за пределами" этого предположительного ограничения, встречая ЛЮБУЮ yield-инструкцию - просто прерывает свою работу.

Пример реальной последовательности в "псевдокоде":

<Класс А> (синглтон)
Выполняется обработчик события, уникального для класса <Класса А>
В нем вызывается метод "а"
В методе "а" - вызов корутины
Корутина дожидается смены состояния синглтона (<Класса Б>), затем выполняет ряд действий, в итоге - вызывает метод "б"
Метод "б" - создает событие, уникальное для <Класса Б>

<Класс Б> (синглтон)
Обработчик ловит событие из <Класс А>.метод "б"
запускает корутину на смену состояния <Класса Б>
В корутине перестают работать yield-инструкции - доходит до первой и прерывает работу.

Кто-то сталкивался с таким явлением?

Правка: 28 дек. 2017 22:24

MiraПостоялецwww28 дек. 201723:36#1278
Homeship
ну вот у меня пример. где корутина в корутине. там работает, ощущение что не всегда
использую корутины из ассета MEC (more effective coroutine)
HomeshipПостоялецwww28 дек. 201723:45#1279
Mira
Не очень понял.
там "Работает" или "не всегда"?

Я использую совершенно "родные" юньковские корутины - безо всяких ассетов.  Вот для обработчиков стейтов использую класс ObserverValue<T> из ассета Gamelogic\Extensions.

MiraПостоялецwww29 дек. 20170:01#1280
Homeship
иногда цепочка вложенных друг в друга корутин прерывается по невыясненной причине. никаких ошибок в дебаге не высвечивается
HomeshipПостоялецwww29 дек. 20179:12#1281
Mira
Вот у меня - та же фигня. Причем код вполне отлажен, но добавляешь какой-то функционал (вызов метода \ старт корутины) и все рушится.  Ошибок нет. Но подозреваю на хитровывернутое переполнение стека при yield-инструкциях. ХБЗ как юнитеки их реализовали.
MiraПостоялецwww29 дек. 201710:18#1282
Homeship
Да чет хз,  у меня например вложеность небольшая.  Ну максимум уровень вложености с десяток.
HomeshipПостоялецwww29 дек. 201711:28#1283
Mira
Выше я привел пример - у меня там и десятка нет, максимум 4-5. Думаю основная проблема - то, что "во вложении" (даже если оно через обработку события) запускаются корутины другого класса.
alexzzzzПостоялецwww29 дек. 201714:15#1284
Homeship
Сопрограммы привязаны к объектам, внутри которых они были запущены. У тебя никакие объекты не уничтожаются, когда останавливается выполнение сопрограмм?
HomeshipПостоялецwww29 дек. 201715:52#1285
alexzzzz
Нет ничего не уничтожается. Более того, я указал в примере что вызовы происходят исключительно между синглтонами.
alexzzzzПостоялецwww7 янв. 20181:11#1286
Возник простой вопрос, над которым никогда не задумывался:

Допустим, есть стена и есть дверь, которая должна открываться. Нужен HingeJoint, который соединит эти объекты между собой. На кого вешать HingeJoint, на стену или на дверь?

alexzzzzПостоялецwww7 янв. 201817:28#1287
Хочу написать скрипт для редактора, который после редактирования списка Layers пересоздавал бы C#-файл с перечислением всех существующих Layers в виде enum, чтобы не иметь в коде дела со строками.

Например:

public enum Layer
{
    Default = 0,
    TransparentFX = 1,
    IgnoreRaycast = 2,
    …
}

Вопрос: а как собственно узнать в редакторе о том, что список Layers был изменён? Есть ли какой-нибудь callback на изменение настроек проекта или что-нибудь в этом роде?

alexzzzzПостоялецwww7 янв. 201820:54#1288
Вот: https://bitbucket.org/alexzzzz/unity-layers/overview
+ Картинка

Правка: 8 янв. 2018 1:22

alexzzzzПостоялецwww17 янв. 201823:57#1289
Будущее потихоньку наступает:
+ C# 7.2 под Net Standard 2.0 под IL2CPP под Windows

Хотя, можно и сказать, что кое-чьё прошлое заходит в Unity со стороны будущего и параллельно через зад.

PS
Кстати, никто ещё не тестировал IL2CPP под Windows на скорость? Есть хоть какие-то отличия?

Правка: 18 янв. 2018 0:08

Страницы: 185 86 87 8890 Следующая »

/ Форум / Программирование игр / Общее

2001—2018 © GameDev.ru — Разработка игр