这是一个只具有打印功能的脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DelegateScript : MonoBehaviour {
//声明一个委托类型,它的实例引用一个方法
delegate void MyDelegate(int num);
MyDelegate myDelegate;
void Start()
{
//委托类型MyDelegate的实例myDelegate引用方法PrintNum
myDelegate = PrintNum;
myDelegate(50);
//委托类型MyDelegate的实例myDelegate引用方法PrintDoubleNum
myDelegate = PrintDoubleNum;
myDelegate (50);
}
//输出原数
void PrintNum(int num)
{
Debug.Log("Print num:"+num);
}
//输出该数的两倍
void PrintDoubleNum(int num)
{
Debug.Log("Double Num:"+num*2);
}
}
Delegate类定义了两个私有方法PrintNum和PrintDoubleNum,它们分别实现了打印传入的参数和打印传入参数的两倍的功能。在Start方法中,MyDelegate类的实例myDelegate分别引用了这两个方法,并且分别调用了这两个方法。
打印结果如下