using Unity.VisualScripting; using UnityEngine; using UnityEngine.Events; /// /// Обрабатывает триггерную зону тайла и вызывает эвент /// public class TriggerZoneScript : MonoBehaviour { /// /// делегат и эвент, который собирает подписи /// public UnityEvent TriggerZoneEvent = new UnityEvent(); /// /// флаг реакции тригера /// [SerializeField] private bool _wasTrigged = false; public bool WasTrigged { get => _wasTrigged; set => _wasTrigged = value; } /// /// Реакция тригерной зоны на вхождение игрока /// /// объект тригера private void OnTriggerEnter(Collider other) { // если тег игрока и первая реакция if (other.gameObject.CompareTag("Player") && !WasTrigged) { // Debug.Log("Was trigged"); // изменение, что тригер сработал WasTrigged = !WasTrigged; // вызов всех подписей TriggerZoneEvent.Invoke(); } } }