Skip to content

Instantly share code, notes, and snippets.

@gekidoslair
Created June 7, 2026 20:24
Show Gist options
  • Select an option

  • Save gekidoslair/9baa7027ee8de2e720eb9697f6efe9f5 to your computer and use it in GitHub Desktop.

Select an option

Save gekidoslair/9baa7027ee8de2e720eb9697f6efe9f5 to your computer and use it in GitHub Desktop.
Runtime Spawner Wave Trigger event example
using MegaCrush.Spawner;
using UnityEngine;
public class WaveTriggerEventSample : MonoBehaviour
{
[SerializeField] private WaveTrigger waveTrigger;
private void OnEnable()
{
if (waveTrigger == null)
return;
waveTrigger.OnTriggerEnterEvent.AddListener(OnEnteredTrigger);
waveTrigger.OnTriggerExitEvent.AddListener(OnExitedTrigger);
waveTrigger.OnWaveActivated.AddListener(OnWaveActivated);
waveTrigger.OnWaveCompleted.AddListener(OnWaveCompleted);
waveTrigger.OnTriggerStateChanged.AddListener(OnTriggerStateChanged);
}
private void OnDisable()
{
if (waveTrigger == null)
return;
waveTrigger.OnTriggerEnterEvent.RemoveListener(OnEnteredTrigger);
waveTrigger.OnTriggerExitEvent.RemoveListener(OnExitedTrigger);
waveTrigger.OnWaveActivated.RemoveListener(OnWaveActivated);
waveTrigger.OnWaveCompleted.RemoveListener(OnWaveCompleted);
waveTrigger.OnTriggerStateChanged.RemoveListener(OnTriggerStateChanged);
}
private void OnEnteredTrigger()
{
Debug.Log("Player entered the wave trigger.");
}
private void OnExitedTrigger()
{
Debug.Log("Player exited the wave trigger.");
}
private void OnWaveActivated()
{
Debug.Log("Wave started.");
}
private void OnWaveCompleted()
{
Debug.Log("Wave completed.");
}
private void OnTriggerStateChanged(bool isInside)
{
Debug.Log($"Trigger inside state changed: {isInside}");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment