6.5 条件型触发器和函数型触发器
由于历史原因,两种不同类型都被称为"触发器".
第一种也许更确切的叫法是"条件型触发器",第二种也许更确切的叫法是"函数型触发器".
例如,在CNS中,一个典型的状态控制器也许看起来像下面的:
"trigger1 = time = 0"就是一个条件型触发器.
如果表达式"time=0"计算出非0值,则ChangeState控制器将被执行.
如果表达式"time=0"计算出0,则ChangeState控制器将不被执行.
也就是说条件是非0或0影响着控制器是否被触发.
另一方面,表达式中出现的"time"是一个函数型触发器.
它返回一个值,即,玩家在状态1234中的状态时间.
注意一个函数型触发器不触发任何东西.它只是给出一个在表达式中起作用的值.
为了进一步了解不同之处,让我们思考一个不同的状态控制器:
注意条件型触发器"trigger1 = 1"此时不含有任何函数型触发器.
因为表达式"1"总是计算出1,此控制器将每帧都触发.
为了确定什么值被赋予给了var(0),就要计算"time + 5"的值.
函数型触发器"time"返回玩家的状态时间.然后加上5,结果算出的值赋给var(0).
完整的函数型触发器列表请详见触发器篇.