Ho solo una piccola esperienza in Unity3D, ma ho notato che le classi che derivano da MonoBehaviour
possono contenere funzioni con firme predefinite che verranno chiamate in un modo speciale. Ad esempio, se scrivo:In che modo Unity esegue i suoi metodi?
void Update()
{
//some code
}
questo metodo verrà chiamato ogni frame.
Immagino che all'interno di Unity ci sia una sorta di ciclo infinito che chiama il metodo Update
ogni fotogramma per ogni oggetto sulla scena. Ma come fa a sapere che l'oggetto fornisce effettivamente l'implementazione del metodo Update
? Sarebbe stato chiaro se Update
fosse un override per un metodo nella classe MonoBehaviour
, ma a giudicare dalla sintassi (e dal fatto che è possibile implementare tali metodi con qualsiasi modificatore di accesso) non lo è. C'è della magia della riflessione che accade lì?
l'ansioso breve è che usano la magia di preelaborazione per gestire quelle "quasi-funzioni". puoi google molte spiegazioni. mai dimenticare i motori di gioco sono sistemi basati su frame, è tutto un po 'diverso! – Fattie