public class AAA: MonoBehaviour {
public delegate void PlayEndDelegate();
//此處可以使用內置的Action或Func委托簡化,
//具體參考 https://www.cnblogs.com/kingBook/p/5383415.html
public event PlayEndDelegate playEndEvent;
private void playEndHandler(){
playEndEvent();
//判斷是否為null
//if(playEndEvent!=null)playEndEvent();
//判斷是否為null,還可以簡化
//playEndEvent?.Invoke();
}
}
public class BBB: MonoBehaviour {
private AAA _aaa;
void Start () {
_aaa=new AAA();
_aaa.playEndEvent+=onPlayEndHandler;//添加偵聽
_aaa.playEndHandler();
}
private void onPlayEndHandler(){
Debug.Log("bbb onPlayEndHandler");
}
void OnDestroy(){
_aaa.playEndEvent-=playEndHandler;//移除偵聽
}
}
//output: bbb onPlayEndHandler