Ich mache mehr Spiele und stelle mehr dumme Fragen.
Hoffentlich ist dieser sehr kurz. Ich mache eine sehr einfache Klasse, die nur ein Player-Objekt bewegt, indem sie Kraft auf einen starren Körper ausübt, aber ich habe mich gefragt, ob ich eine Klassenreferenz auf das rb oder nur eine lokale Variable in Update jedes Frames erstellen soll. (Beachten Sie, dass es bereits in der übergeordneten Klasse Monobehaviour.GameObject Unity vorhanden ist.)
Ich frage mich, ob das Ausführen vieler lokaler Variablen die Schleife als Ganzes verlangsamen würde (mit lokal meine ich innerhalb der Funktion selbst und nicht an der Spitze der Klasse - ich hoffe, ich verwende den richtigen Begriff).
Hier ist, was ich meine, die zwei Arten, wie ich es mir vorgestellt habe:
public class Player : MonoBehaviour {
private void FixedUpdate()
{
Rigidbody rb = GetComponent<Rigidbody>();
float v = Input.GetAxis("Vertical");
rb.AddForce(v * rb.transform.forward * Const.walkForce);
}
}
oder...
public class Player : MonoBehaviour {
Rigidbody rb;
private void Awake()
{
rb = GetComponent<Rigidbody>();
}
private void FixedUpdate()
{
float v = Input.GetAxis("Vertical");
rb.AddForce(v * rb.transform.forward * Const.walkForce);
}
}