ECS híbrido de Unity con "estilo antiguo"

8

¿Es posible usar ECS híbrido con algunos componentes y el estándar MonoBehaviour con todo su código anterior?

Quiero saber porque ya tengo algunas mecánicas de juego construidas con la forma "antigua" y quiero construir las nuevas usando híbrido

Marc Rasmussen
fuente

Respuestas:

8

Es perfectamente posible mezclar ambos estilos. El mismo GameObject puede tener algunas de sus funcionalidades implementadas con el nuevo sistema ECS y otras funcionalidades en eventos clásicos de MonoBehaviour.

Lo que Unity recomienda en su tutorial de ECS es, de hecho, comenzar con un proyecto que usa el estilo antiguo y luego buscar características que cree que se beneficiarían al refactorizarlas al nuevo patrón de ECS:

¿Qué significa esto para mi juego?

puede convertir uno por uno el comportamiento de los métodos MonoBehaviour.Update en ComponentSystems. De hecho, puede mantener todos sus datos en un MonoBehaviour, y de hecho, esta es una forma muy simple de comenzar la transición al código de estilo ECS.

Por lo tanto, los datos de su escena permanecen en GameObjects y componentes. Continúa usando GameObject.Instantiate para crear instancias, etc.

Simplemente mueva el contenido de su MonoBehaviour.Update a un método ComponentSystem.OnUpdate. Los datos se guardan en el mismo MonoBehaviour u otros componentes.

Por supuesto, esto no hace uso de los beneficios del nuevo sistema de Jobs y la creación de instancias de entidades a través de un EntityManager. Pero esas nuevas características también se pueden mezclar y combinar con los clásicos MonoBehaviours.

Para obtener más información sobre cómo convertir un juego usando el patrón clásico MonoBehaviour al patrón ECS, también recomiendo esta serie de videos del canal oficial de Unity donde convierten el buen ejemplo de tirador espacial antiguo al nuevo estilo paso a paso. uso de más y más de las nuevas características. Cada paso intermedio funciona perfectamente. La versión final todavía utiliza algunos objetos clásicos del juego, debido a una característica que aún no está disponible con el sistema ECS (efectos de partículas).

Philipp
fuente