Я роблю більше ігор і задаю дурніші запитання.
Сподіваємось, цей дуже короткий. Я створюю дуже базовий клас, який просто переміщує об’єкт Player, застосовуючи силу до жорсткого тіла, але мені стало цікаво, чи слід робити класне посилання на rb або просто локальну змінну всередині Оновлення кожного кадру? (маючи на увазі, це вже існує в батьківському класі Monobehaviour.GameObject.
Мені цікаво, якщо виконання багатьох локальних змінних уповільнить цикл у цілому (під локальним я маю на увазі всередині самої функції, а не на вершині класу - сподіваюся, що ми використовуємо правильний термін).
Ось що я маю на увазі, два способи, які я думав зробити це:
public class Player : MonoBehaviour {
private void FixedUpdate()
{
Rigidbody rb = GetComponent<Rigidbody>();
float v = Input.GetAxis("Vertical");
rb.AddForce(v * rb.transform.forward * Const.walkForce);
}
}
або ...
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);
}
}