Unity Hybrid ECS со «старым способом»


8

Можно ли использовать Hybrid ECS с некоторыми компонентами и стандартом MonoBehaviourсо всем вашим старым кодом?

Я хочу знать, потому что у меня уже есть игровая механика, построенная по «старому» способу, и я хочу построить новую, используя гибрид

Ответы:


8

Вполне возможно смешать оба стиля. В том же GameObject могут быть реализованы некоторые его функции с новой системой ECS и другие функции в классических событиях MonoBehaviour.

Что Unity рекомендует в своем учебном пособии по ECS, так это фактически начать с проекта, который использует старый стиль, а затем искать функции, которые, по вашему мнению, выиграют от их рефакторинга в соответствии с новым шаблоном ECS:

Что это значит для моей игры?

вы можете по одному конвертировать поведение из методов MonoBehaviour.Update в ComponentSystems. Фактически вы можете хранить все свои данные в MonoBehaviour, и это на самом деле очень простой способ начать переход к коду стиля ECS.

Таким образом, данные вашей сцены остаются в GameObjects и компонентах. Вы продолжаете использовать GameObject.Instantiate для создания экземпляров и т. Д.

Вы просто перемещаете содержимое вашего MonoBehaviour.Update в метод ComponentSystem.OnUpdate. Данные хранятся в том же MonoBehaviour или других компонентах.

Это, конечно, не использует преимущества новой системы Джобса и создание экземпляров сущностей через EntityManager. Но эти новые функции также можно смешивать и сочетать с классическим MonoBehaviours.

Для получения дополнительной информации о том, как преобразовать игру с использованием классического шаблона MonoBehaviour в шаблон ECS, я также рекомендую эту серию видео с официального канала Unity, где они преобразуют старый добрый пример космического шутера в новый стиль, шаг за шагом делая использовать все больше и больше новых функций. Каждый шаг между ними работает отлично. В финальной версии все еще используются некоторые классические игровые объекты из-за функции, которая еще не доступна в системе ECS (эффекты частиц).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.