42 lines
1.2 KiB
C#
42 lines
1.2 KiB
C#
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
|
|
/// <summary>
|
|
/// Обрабатывает триггерную зону тайла и вызывает эвент
|
|
/// </summary>
|
|
public class TriggerZoneScript : MonoBehaviour
|
|
{
|
|
/// <summary>
|
|
/// Эвент, который собирает подписи, необходимо присвоить ему новый UnityEvent
|
|
/// </summary>
|
|
public UnityEvent TriggerZoneEvent = new UnityEvent();
|
|
|
|
/// <summary>
|
|
/// флаг реакции тригера
|
|
/// </summary>
|
|
[SerializeField]
|
|
private bool _wasTrigged = false;
|
|
|
|
/// <summary>
|
|
/// Реакция тригерной зоны на вхождение игрока
|
|
/// </summary>
|
|
/// <param name="other">объект тригера</param>
|
|
private void OnTriggerEnter(Collider other)
|
|
{
|
|
// если тег игрока и первая реакция
|
|
if (other.gameObject.CompareTag("Player") && !_wasTrigged)
|
|
{
|
|
|
|
// Debug.Log("Was trigged");
|
|
|
|
// изменение, что тригер сработал
|
|
_wasTrigged = !_wasTrigged;
|
|
|
|
// вызов всех подписей
|
|
TriggerZoneEvent.Invoke();
|
|
}
|
|
}
|
|
|
|
}
|
|
|