Программист Unity3D, C#
Информация
- В рейтинге
- Не участвует
- Откуда
- Воронеж, Воронежская обл., Россия
- Зарегистрирован
- Активность
Специализация
Разработчик игр
Ведущий
C#
Объектно-ориентированное проектирование
C++
Разработка программного обеспечения
Разработка игр
Unity3d
Visual Studio
Git
ООП
Это справедливо только для редактора, для того, чтобы иметь возможность в Unity проверять ссылки на их объекты. В режиме билда, будет самый null. Это известный прикол уже)
а можно пример? если не затруднит, давно на С++ кодил, лет 10 назад.
В этом то и суть) по барабану может быть только из-за рефлексии.
Объясните механизм, как получить доступ к методу (публичные не берем в счет) из C++, при как вы называете C# скриптах. Вы же понимаете, что C# скрипты, это не скрипты в понимании настоящем (аля Lua), когда компиляция идет на этапе исполнения. В Unity все скрипты компилируются автоматически при изменении оных, до того как вы что-либо запустите, иначе у вас ни инспектор поля не отобразит да и в принципе ничего работать не будет.
IL2CPP это плюсовый интерпретатор C# кода по сути, то что делает CLR (точне CIL/MSIL) в виндовз. Цель простая С++ код работает быстрее. При этом использование рефлексии в коде С# дозволено даже при использовании IL2CPP.
Странное какое-то получается мнение о том, что Unity не использует рефлексию для методов Start и etc., а неким интересным способом Mono получает эту информацию и кэширует. Причем способ явно не описан и данное мнение ничем не подтверждается. Получить данные о приватном методе в C# можно только через рефлексию. То что Unity кэширует ссылки на найденные методы это понятно без слов. Я надеюсь, что никто не думает, что каждый вызов Update происходит через поиск MethodInfo по имени.
PS: при компиляции проекта под VS (Windows Store платформа), там тоже Mono выдает каким-то образом информацию о приватных методах?
Если в первом случае, надо настраивать правильно физические представления, ибо чем меньше значения оных, тем менее точно физика работает. Если у вас коллидеры по 0.1f размером, это не тоже самое, что при 10f. Будут артекфакты, их можно убрать через способ определения колизии, поменять дискретный, на непрерывный.
А в лучшем случае, персонажи не должны давить друг на друга.
Самая большая проблема это ассинхронные сообщения, но это совершенно отдельная история.
SendMessage это вообще рудимент, использовать его для системы сообщений мягко сказать плохо. Единственный его плюс, в возможности вызвать метод у компонента, без получения экземпляра класса, причем любой.