È possibile utilizzare Hybrid ECS con alcuni componenti e lo standard MonoBehaviour
con tutto il vecchio codice?
Voglio sapere perché ho già alcune meccaniche di gioco costruite con il "vecchio" modo e voglio costruirne di nuove usando l'ibrido
È possibile utilizzare Hybrid ECS con alcuni componenti e lo standard MonoBehaviour
con tutto il vecchio codice?
Voglio sapere perché ho già alcune meccaniche di gioco costruite con il "vecchio" modo e voglio costruirne di nuove usando l'ibrido
Risposte:
È perfettamente possibile mescolare entrambi gli stili. Lo stesso GameObject può avere alcune delle sue funzionalità implementate con il nuovo sistema ECS e altre funzionalità nei classici eventi MonoBehaviour.
Ciò che Unity consiglia nel loro tutorial ECS è infatti iniziare con un progetto che utilizza il vecchio stile e quindi cercare funzionalità che si ritiene possano trarre vantaggio dal rifattorizzarle nel nuovo modello ECS:
Cosa significa questo per il mio gioco?
puoi uno ad uno, convertire il comportamento dai metodi MonoBehaviour.Update in ComponentSystems. Puoi infatti conservare tutti i tuoi dati in un MonoBehaviour, e questo è in realtà un modo molto semplice per iniziare la transizione al codice di stile ECS.
Quindi i dati della scena rimangono in GameObjects e componenti. Continui a utilizzare GameObject.Instantiate per creare istanze ecc.
È sufficiente spostare il contenuto di MonoBehaviour.Update in un metodo ComponentSystem.OnUpdate. I dati sono conservati nello stesso MonoBehaviour o in altri componenti.
Ciò ovviamente non sfrutta i vantaggi del nuovo sistema Jobs e la creazione di istanze di entità tramite un EntityManager. Ma queste nuove funzionalità possono anche essere combinate e abbinate ai classici MonoBehaviours.
Per ulteriori informazioni su come convertire un gioco dall'uso del classico modello MonoBehaviour al modello ECS, consiglio anche questa serie di video dal canale Unity ufficiale in cui convertono il buon vecchio esempio di sparatutto spaziale nel nuovo stile, facendo passo per passo utilizzo di sempre più nuove funzionalità. Ogni passaggio tra funziona perfettamente. La versione finale utilizza ancora alcuni oggetti di gioco classici, a causa di una funzione che non è ancora disponibile con il sistema ECS (effetti particellari).