50 lines
1.4 KiB
C#
50 lines
1.4 KiB
C#
|
using System.Collections;
|
|||
|
using System.Collections.Generic;
|
|||
|
using UnityEngine;
|
|||
|
using UnityEngine.Events;
|
|||
|
|
|||
|
public class OnEnableTrigger : MonoBehaviour
|
|||
|
{
|
|||
|
/// The condition/permission for triggering events in this script.
|
|||
|
public EventTriggerPermission m_EventTriggerPermission = EventTriggerPermission.NotReady;
|
|||
|
|
|||
|
/// Do not trigger any event(in this script) earlier than this game time, game time is the time since the begin of the app started.
|
|||
|
/// (Why? Sometimes you need to wait for other scripts to completely initiated before calling their methods.)
|
|||
|
public float m_TiggerNotEarlyThanGameTime = 1f;
|
|||
|
|
|||
|
public enum EventTriggerPermission
|
|||
|
{
|
|||
|
/// Do not trigger any event(in this script)
|
|||
|
NotReady = 0,
|
|||
|
|
|||
|
/// Wait after the provided game time(m_TiggerNotEarlyThanGameTime)
|
|||
|
AfterGameTime,
|
|||
|
|
|||
|
/// Allow trigger events(in this script)
|
|||
|
Ready,
|
|||
|
}
|
|||
|
|
|||
|
public UnityEvent m_OnEnableEvent;
|
|||
|
public UnityEvent m_OnDisableEvent;
|
|||
|
|
|||
|
|
|||
|
void OnEnable()
|
|||
|
{
|
|||
|
if(m_EventTriggerPermission == EventTriggerPermission.Ready ||
|
|||
|
(m_EventTriggerPermission == EventTriggerPermission.AfterGameTime && Time.time > m_TiggerNotEarlyThanGameTime))
|
|||
|
{
|
|||
|
m_OnEnableEvent.Invoke();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void OnDisable()
|
|||
|
{
|
|||
|
if(m_EventTriggerPermission == EventTriggerPermission.Ready ||
|
|||
|
(m_EventTriggerPermission == EventTriggerPermission.AfterGameTime && Time.time > m_TiggerNotEarlyThanGameTime))
|
|||
|
{
|
|||
|
m_OnDisableEvent.Invoke();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|