Как сделать проверку активного предмета в Unity?

В Unity, для проверки активного предмета можно использовать свойство gameObject.activeSelf.

Свойство gameObject является ссылкой на объект, на котором скрипт был прикреплен. activeSelf - это булево значение, которое показывает, активен ли объект в данный момент.

Вы можете использовать это свойство в методе Update вашего скрипта для проверки активности объекта и выполнения определенной логики в зависимости от его состояния.

Вот пример скрипта, который демонстрирует, как проверить активный объект:

using UnityEngine;

public class CheckActiveObject : MonoBehaviour
{
    // Объект, который мы хотим проверить на активность
    public GameObject objectToCheck;

    private void Update()
    {
        // Проверяем, активен ли объектToCheck
        if (objectToCheck.activeSelf)
        {
            Debug.Log("Объект активен");
        }
        else
        {
            Debug.Log("Объект неактивен");
        }
    }
}

Как видно из примера, мы использовали свойство objectToCheck.activeSelf для проверки активности объекта. Если объект активен, выводится сообщение "Объект активен", иначе - выводится сообщение "Объект неактивен". Обратите внимание, что objectToCheck должен быть назначен в инспекторе Unity. Вы можете просто перетащить объект из иерархии в соответствующее поле objectToCheck в компоненте скрипта.

Также стоит отметить, что gameObject.activeSelf не является эффективным способом для проверки активности объекта в каждом кадре, особенно если у вас много объектов, которые вам нужно проверить. В таких случаях рекомендуется хранить ссылку на объект и проверять его активность только в случае необходимости, чтобы избежать лишних нагрузок на производительность.