Unity C#

Метод FixedUpdate в Unity C# — фиксированное обновление для физики

Метод FixedUpdate в Unity нужен для действий, связанных с физикой. В отличие от Update, он вызывается через фиксированные интервалы времени, поэтому подходит для работы с Rigidbody и другими физическими компонентами.

Особенности

  • Фиксированный интервал: вызывается через равные промежутки времени — стабильно для физики.
  • Обработка физики: перемещение объектов с Rigidbody, применение сил, расчёт столкновений.
  • Не зависит от FPS: в отличие от Update не привязан к частоте кадров, поэтому точнее для физики.

Пример кода

В FixedUpdate читаем оси ввода и толкаем объект с Rigidbody силой:

using UnityEngine;

public class Player : MonoBehaviour
{
	private Rigidbody rb;
	private float force = 10.0f;

	// Метод Start используется для инициализации
	void Start()
	{
		rb = GetComponent<Rigidbody>();
	}

	// Метод FixedUpdate используется для работы с физикой
	void FixedUpdate()
	{
		// Пример применения силы к объекту
		float horizontal = Input.GetAxis("Horizontal");
		float vertical = Input.GetAxis("Vertical");

		Vector3 forceDirection = new Vector3(horizontal, 0, vertical);
		rb.AddForce(forceDirection * force);
	}
}