可以简单的视作函数的容器,可以进行传递或像变量一样使用,像变量一样像委托分配值且可以在运行时更改,区别在于变量包含数据而委托包含函数。
DelegateScript
public class DelegateScript : MonoBehaviour{ //定义像方法,声明像变量delegate void MyDelegate(int num);MyDelegate myDelegate;void Start (){myDelegate = PrintNum;myDelegate(50);myDelegate = DoubleNum;myDelegate(50);}void PrintNum(int num){print ("Print Num: " + num);}void DoubleNum(int num){print ("Double Num: " + num * 2);}}
MulticastScript
多播委托
通过这种方法我们可以叠加功能
public class MulticastScript : MonoBehaviour{delegate void MultiDelegate();MultiDelegate myMultiDelegate;void Start (){myMultiDelegate += PowerUp;myMultiDelegate += TurnRed;if(myMultiDelegate != null){myMultiDelegate();}}void PowerUp(){print ("Orb is powering up!");}void TurnRed(){renderer.material.color = Color.red;}}
