@frog1232

Как сделать проверку нахождения объекта в триггере?

День добрый! Суть вопроса: У меня есть кнопка, и если войти в её триггер она активируется(OnButtonStay()), а если выйти, собственно, деактивируется(OnButtonExit()), но если объект войдёт в её триггер и затем исчезнет(SetActive(false)), то кнопка останется активной(OnButtonStay()). Так вот, как сделать так, чтобы скрипт проверял нахождение объекта в триггере, и в случае его исчезновения или пропажи, просто деактивировал кнопку(OnButtonExit()).
Буду очень благодарен за помощь!

using UnityEngine;

public class ButtonTrigger : MonoBehaviour
{

    [SerializeField] private Animator _anim;
    [SerializeField] private MeshRenderer _buttonbase;
    [SerializeField] private Texture _materialOff;
    [SerializeField] private Texture _materialOn;

    [SerializeField] private AudioSource _onSound;
    [SerializeField] private AudioSource _offSound;

    private bool _isDown;

    private void Start()
    {
        _anim.SetBool("isDown", !_isDown);
    }

    private void OnTriggerStay(Collider other)
    {
        if (other)
        {
            OnButtonStay();
        }
    }

    private void OnTriggerExit(Collider other)
    {
        if (other)
        {
            OnButtonExit();
        }
    }

    private void OnButtonStay()
    {
        _anim.SetBool("isDown", _isDown);

        _buttonbase.material.mainTexture = _materialOn;
    }

    private void OnButtonExit()
    {
        _anim.SetBool("isDown", !_isDown);
        _buttonbase.material.mainTexture = _materialOff;
    }
  • Вопрос задан
  • 605 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы