Unity委托事件
委托也就是delegate是一个引用类型,他相当于一个装着方法的容器,他可
2023-07-30
委托也就是delegate是一个引用类型,他相当于一个装着方法的容器,他可以把方法作为对象进行传递。
在Unity中,我们想让两个类的方法产生关联,一旦触发其中一个方法(更容易理解可以叫事件),便自动触发装在其中的方法(触发订阅其中的方法)
很多时候,委托的合理运用可以极大的减少代码的运行空间,比如可以不至于在Update里面一直监测,直到满足条件触发。
(资料图片)
委托自然可以一对多。
简化方式,使用Action和Func来创建委托实例,一个无返回值一个有返回值。
lambda表达式是匿名方法的进一步演化和简化,但是本身并非委托类型,不过它可以通过多种方式隐式或显式转换成一个委托实例。
协变性指的是方法的返回值类型可以是从委托的返回值类型派生的一个派生类,协变性描述的是委托的返回值类型。
逆变性指的是方法的参数类型可以是委托的参数类型的基类,逆变性描述的委托的参数类型。
关于事件,是委托的包装,订阅事件的时候本质上是将委托类型的实例添加到委托列表中。事件只能被外部订阅,不能在外部触发,也就是对事件的只能监听“+=”、移除”-=”。
比如上面的static类型事件event_ex,不能在外部直接调用OnClicked的委托实例。
(来源:/p/84015453)
标签: