3.4.2.1 触发器逻辑性

第一个触发条件总是trigger1,下面的应该是trigger2,之后是trigger3等等.
控制器执行的逻辑是:

1.所有trigger1都为真?如果是,就激活控制器.
2.否则,检测trigger2,等等,直到找不到剩余的触发条件.

你能把它想象成逻辑"或".

注意;跳过trigger后面的数字会造成某些触发条件被忽略.
例如,如果你有了trigger1,trigger2,trigger4而没有trigger3,那trigger4将被忽略.

如果你想在控制器被激活前列出更多的条件该怎么做?
这是一个常用例子,检测处于空中的玩家是否落地.触发条件:

在这点上,你也许会对触发条件的格式感到困惑.不要担心,我们会很快说到.

如你所见,相同的触发条件有相同的号码.当一些触发条件有相同的号码,他们执行的是逻辑"且".
就是说,相同号码的触发条件都为真才能激活控制器,只要有一个为假就不能激活.

你可以把他们结合起来.例如:

玩家落地或者状态时间为5都能激活此控制器.

总结:

相同号码的触发条件只有所有条件为真才能激活控制器.
不同号码的触发条件只要有一个条件为真就能激活控制器.

触发条件格式为:

condition_exp是一个用于检测的算术表达式.如果是0,触发条件为假.如果是非0值,触发条件为真.
condition_exp通常是和上面例子相同的一些简单式子,但也能按要求变的很复杂.

在表达式间可以运用逻辑运算符.例如,此例与上例相同.

详情见表达式部分.

triggerall是你可能见到的有用结构.指定了一个对所有触发条件来说都要为真的触发条件.例如,考虑:

对于从trigger1到trigger3需要被检测的条件,triggerall必须同时为真.
此情况下,只要x方向速度不是0,则这个控制器不会被激活.
你能按需要设置更多的triggerall条件.
注意,即使你指定了triggerall,trigger1也至少要有1个.