欢迎光临散文网 会员登陆 & 注册

unity 委托心得

2023-03-06 14:33 作者:lyexon  | 我要投稿

在unity中,如果你想让角色和某个游戏物体互动,那么最常见的方法就是通过达成某个条件来对指定物体进行特定操作。但是,如果物体之间的关系稍微复杂一些,那么就很容易产生逻辑越来越混乱的问题,比如在A情况下,B会进行移动,C会进行旋转,但同时,在A1的情况下,B会进行旋转,C则要进行移动,那么,对于B和C来说,就需要获得A的情况并根据需要来进行相对应的操作,但如果随着需求提升,C在某一种情况下可以改变A的条件,让A转变为A1或者反过来A1转化为A呢?这样的话C就还要额外多获得一个新的对于A的对象,同时编写相对应的情况,显而易见,此时他们之间的耦合度大大提升了,这不仅仅对于程序员来说是一种折磨,也是对后续测试的一种折磨。那么该怎么解决这个问题呢?可以委托来完成这个工作。

委托一般由三个重要结构组成,一个主控台,一个触发器,一个执行器。他们之间的关系如图

委托原理

在主控台中定义委托类型,同时写入一个触发的某种条件,这个条件由触发器触发,这样就实现了对触发器的监听,触发器一旦触发了这个条件,那么就进入了下一个阶段,在此之前,委托类型在执行器中被订阅,主控台可以推送消息给执行器,让其执行。那么我们继续接上触发器触发条件之后。出发之后执行器收到订阅变更执行相关操作就完成了委托。这个的好处解开条件之间的关联性,让脚本之间的管理变得更加轻松,是一个很实用的技巧

实操方式如下

public delegate 事件类型或者其他的什么布尔类型啊都可以 类的名字(跟上参数,没有可以不跟);

public static event 类的名字 事件名字;

public 这里随意定义一个用于操作的参数,没有可以,根据上面的委托改变;

update{

if(事件名字不为空){

事件名字;

}

}

之后就是订阅的方法了,一般直接+=就行,剩下的就可以自由发挥了

unity 委托心得的评论 (共 条)

分享到微博请遵守国家法律