声明:本文仅做个人笔记以及学习分享,不用做任何商业用途

其实事件作为特殊的委托,我应该先介绍一下委托和委托

C# 委托-CSDN博客

C# 事件-CSDN博客

下为unity官方手册和b站教程:
UnityEvent - Unity 手册

 1.什么是UnityEvent

        以下是官方介绍:UnityEvent是Unity提供的一种用于处理事件的类,它允许一个对象向其他对象发送消息,UnityEvent提供了一种灵活的方式来在不同的组件、脚本和对象之间传递信息通过使用UnityEvent,可以将一个对象的行为和功能与其他对象解耦,使得代码更加模块化、易于维护和扩展

 说白了,UnityEvent就是一个可以可视化的事件系统,并且适合在unity内直接使用,可以配合泛型C# & Unity 面向对象补全计划 泛型-CSDN博客 来使用

2.使用范例

首先在你的sence场景中创建一个空物体

之后创建一个脚本我这里取名TEST,拖拽到GameObject空物体上

你可以创建一个类继承UnityEvent事件类,这里我给<>里面添加的泛型是string类型,也就是说你要传入方法的参数也必须是string,不然会报错

别忘了using库文件

拖拽添加方法

在你的sence场景创建一个Cube,假装当做你的player对象

之后创建一个新的脚本 我叫做M(Method的首字母)

写一个方法取名m1

现在你可以拖拽你的Cube,并在下拉菜单中找到m1方法

现在你可以在TEST脚本内调用你的m1方法了

是不是有点绕?

总结一下可视化事件类添加方法的实现思路:

1.提供容器:有个继承UnityEvent事件类的类,并实例化

2.添加方法:写一个或者多个需要实现的方法并在Inspector窗口拖拽它

3.事件实现:Invoke调用

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐