Довідники Unity C# Rigidbody.isKinematic

Що таке Rigidbody.isKinematic в Unity C#?

Властивість isKinematic у компонента Rigidbody в Unity використовується для керування взаємодією об’єкта з фізикою. Коли це властивість встановлено у true, об’єкт перестає реагувати на сили, зіткнення та інші фізичні впливи. Натомість ви можете керувати об’єктом вручну, використовуючи його трансформацію або методи.


Ця властивість корисна, якщо вам потрібно переміщувати об’єкт програмно, без використання фізики. Наприклад, ви можете задавати положення об’єкта у коді, не турбуючись про зіткнення чи гравітацію.


Основні особливості:
  1. При встановленні у true об’єкт не реагує на фізику, але все одно може викликати тригери і брати участь у подіях зіткнень.
  2. Корисно для анімації об’єктів або коли потрібно повне керування рухом вручну.
  3. Коли властивість вимкнена, фізичний рушій Unity автоматично обчислює рух та взаємодію об’єкта.
using UnityEngine;

public class Example : MonoBehaviour
{
    private Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();

        // Робимо об’єкт кінематичним
        rb.isKinematic = true;

        Debug.Log("Об’єкт переведено у кінематичний режим.");
    }

    void Update()
    {
        // Переміщуємо об’єкт вручну
        if (rb.isKinematic)
        {
            transform.Translate(Vector3.right * Time.deltaTime);
        }
    }
}


У цьому прикладі об’єкт з Rigidbody перестає реагувати на фізику, оскільки активовано властивість isKinematic. Це дозволяє напряму керувати його положенням у методі Update, як у випадку з переміщенням праворуч із постійною швидкістю.


Варто пам’ятати, що активація цієї властивості може відключити такі функції, як зіткнення, тому її слід використовувати, якщо ви точно знаєте, що об’єкт більше не повинен підпорядковуватися фізиці Unity.

Коментарі
Додати коментар

Поки що коментарів немає