前言
最近在一家公司实习,公司用unity做项目,所以开始抛弃cocos,步入unity的深坑,笔主在研究unity时,发现网上很少有人会去分析引擎内部的实现,更加偏向于“是什么”而不是“为什么”,笔主接下来的一段时间可能都会写一些关于unity的个人理解,由于看不到源码,笔主只能通过类比cocos和UE来猜想unity的实现。
trigger的概念
trigger被称之为触发器,但其实这个翻译不太准确,trigger是一种tick方法,它会在每一帧被检测,触发在程序里的概念更合适于消息传递这种场景,比如win32底层的信号量机制。
trigger的表现
在学习了unity官方的几个教程之后,我总结了一下各种类所带有的trigger方法中,基本符合如下的情况:
- 在满足一定条件时指定函数被调用
- 在一个周期(此处不是指update)中只会被调用一次,在进入下一次周期时标志被重置
trigger的实现
此处我会贴上我写的一小段代码,来讲述一下我对trigger的理解(由于底层代码都是由c++实现的,此处也是c++代码):
class Trigger
{
public:
Trigger():
_name =