
using UnityEngine;

[RequireComponent(typeof(Collider))]
public class EventTriggerOnCollision : MonoBehaviour
{
    [Tooltip("Тег объекта, который должен активировать триггер.")] [SerializeField]
    private string _targetTag;

    [Tooltip("Событие, которое будет вызвано при входе в триггер.")]
    [SerializeField] private GameEvent _eventToRaise;

    [Tooltip("Если true, событие будет срабатывать только один раз.")]
    [SerializeField] private bool _triggerOnce = true;

    private bool _hasBeenTriggered = false;

    private void OnTriggerEnter(Collider other)
    {
        if (_hasBeenTriggered && _triggerOnce)
        {
            return;
        }

        if (other.CompareTag(_targetTag))
        {
            _eventToRaise.Raise();
            _hasBeenTriggered = true;
        }
    }

    private void OnValidate()
    {
        // Убедимся, что коллайдер на объекте является триггером
        GetComponent<Collider>().isTrigger = true;
    }
}