一个基本的C# Event
public class ButtonEvent : MonoBehaviour
{
//定义了委托 ,参数类型string,返回值为void
public delegate void ButtonHandler(string buttonName);
//定义委托的事件
public static event ButtonHandler Button;
void Start()
{
//开始DownMethod1就订阅了事件ButtonDown
ButtonEvent.Button += DownMethod;
}
// Update is called once per frame
void Update()
{
if(Button!=null)
{
//由于订阅了事件,每帧都会使用DownMethod去处理事件,而不会调用UpMethod
Button("This is Downkey");
}
}
//处理事件的方法1:DownMethod
void DownMethod(string btnName)
{
print(btnName+"Down!");
}
//处理事件的方法2:UpMethod
void UpMethod(string btnName)
{
print(btnName + "Up!");
}
}
现将其改写为UnityEvent
1.新建一个ButtonUnityEvent.cs
using Uni