Ich mache einen mobilen Klon von Pacman für Android. Alles funktioniert gut, aber ich versuche mein Spiel so gut wie möglich zu optimieren.Unity3D - GameObject.Find() vs Inspector Zuordnungsleistung
Derzeit in einigen Skripten Ich finde GameObject
‚s von GameObject.Find()
in der Start()
Funktion meiner Skripte zu tun, wie folgt aus:
void Start()
{
ghosts = GameObject.FindGameObjectsWithTag("Ghost");
pacman = GameObject.Find("Pacman");
gameManager = GameObject.Find("Game Manager").GetComponent<GameManager>();
}
Meine Frage ist, Leistung zu erhöhen würde, wenn ich einige dieser GameObject
gemacht‘ s Inspektor zugewiesen Variablen statt .Find()
zu tun?
Würde dies die Leistungsgeschwindigkeit erhöhen oder würde es keinen Unterschied machen, wenn ich eine .Find()
in der Start()
Funktion mache?
Offensichtlich Leistung verringern würde, wenn es in den Update()
genannt wurde als das Skript würde versuchen, einen GameObject
jeden Rahmen zu finden, aber eine Start()
Funktion würde es nur einmal suchen?
nicht sicher, wie um dies zu beantworten. Nein, Sie sollten keine Leistungsänderung bemerken und ja, wenn Sie Find() in Start oder Awake verwenden, wird es nur einmal ausgeführt. –