Ich habe nur eine kleine Erfahrung in Unity3D, aber ich habe festgestellt, dass Klassen, die von MonoBehaviour
abgeleitet sind, Funktionen mit vordefinierten Signaturen enthalten können, die auf eine spezielle Weise aufgerufen werden. Zum Beispiel, wenn ich schreibe:Wie führt Unity seine Methoden aus?
void Update()
{
//some code
}
Diese Methode wird jeden Rahmen aufgerufen werden.
Ich stelle mir vor, dass in Unity gibt es eine Art von Endlosschleife, die die Methode Update
jedes Bild für jedes Objekt in der Szene aufruft. Aber woher weiß es, dass das Objekt tatsächlich die Methodenimplementierung Update
bereitstellt? Es wäre klar gewesen, wenn Update
eine Überschreibung für eine Methode in der Klasse MonoBehaviour
wäre, aber nach der Syntax (und der Tatsache, dass Sie solche Methoden mit jedem Zugriffsmodifikator implementieren können) ist es nicht. Gibt es dort eine Reflektionsmagie?
die kurze Zeit ist sie verwenden Vorverarbeitung Magie, um diese "Quasi-Funktionen" zu behandeln. Sie können viele Erklärungen googlen. Vergiss nie Game Engines sind Frame-basierte Systeme, es ist alles ein bisschen anders! – Fattie