Unity Hybrid ECS com "maneira antiga"

8

É possível usar o Hybrid ECS com alguns componentes e o padrão MonoBehaviour com todo o seu código antigo?

Eu quero saber porque eu já tenho algumas mecânicas de jogo construídas com a maneira "antiga" e quero construir as novas usando híbrido

Marc Rasmussen
fonte

Respostas:

8

É perfeitamente possível misturar os dois estilos. O mesmo GameObject pode ter algumas de suas funcionalidades implementadas com o novo sistema ECS e outras funcionalidades nos eventos clássicos do MonoBehaviour.

O que o Unity recomenda em seu tutorial do ECS é, na verdade, começar com um projeto que use o estilo antigo e, em seguida, procurar recursos que você acha que se beneficiariam se os refatorasse para o novo padrão do ECS:

O que isso significa para o meu jogo?

você pode, um por um, converter o comportamento dos métodos MonoBehaviour.Update em ComponentSystems. Na verdade, você pode manter todos os seus dados em um MonoBehaviour, e essa é realmente uma maneira muito simples de iniciar a transição para o código de estilo ECS.

Portanto, seus dados de cena permanecem nos objetos e objetos de jogo. Você continua usando o GameObject.Instantiate para criar instâncias etc.

Você simplesmente move o conteúdo do seu MonoBehaviour.Update para um método ComponentSystem.OnUpdate. Os dados são mantidos no mesmo MonoBehaviour ou em outros componentes.

Obviamente, isso não faz uso dos benefícios do novo sistema Jobs e da instanciação de entidades por meio de um EntityManager. Mas esses novos recursos também podem ser misturados e combinados com os MonoBehaviours clássicos.

Para obter mais informações sobre como converter um jogo do padrão MonoBehaviour clássico para o padrão ECS, também recomendo esta série de vídeos do canal oficial do Unity, onde eles convertem o bom e antigo exemplo do shooter espacial no novo estilo de criação passo a passo uso de mais e mais dos novos recursos. Cada etapa intermediária funciona perfeitamente. A versão final ainda usa alguns objetos clássicos do jogo, devido a um recurso que ainda não está disponível no sistema ECS (efeitos de partículas).

Philipp
fonte