using System.Collections; using System.Collections.Generic; using UnityEngine; namespace WK { /// /// 保存action并由OnActive()指定触发时机和条件 /// public abstract class Trigger { public delegate void TriggerHandler(params object[] args); public event TriggerHandler handler; //需要指定调用FireTrigger的时机 public abstract void OnActive(); public virtual void OnDeactive() { } protected void FireTrigger(params object[] args) { handler?.Invoke(args); } } /* public class OnPlayerHurt : Trigger { public override void OnActive() { UnitManager.Instance.player.AddObserver("Player.Hurt", OnPlayerHurtCallbak); } private void OnPlayerHurtCallbak() { FireTrigger(); } } */ }