逻辑门
< Zh
Jump to navigation
Jump to search
逻辑门是用于对多个布尔值输入 执行逻辑运算并生成单一输出 的模型。在游戏中可用于实现如"仅当特定按钮组处于特定开关状态时才开门"等复杂逻辑。
实现原理
在起源 引擎中,可通过组合logic_branch 和logic_branch_listener 实体实现逻辑门功能:
1. **输入设备**(如按钮)状态存储:
- 开(ON)状态 =1
(TRUE) - 关(OFF)状态 =0
(FALSE) - 通过logic_branch 存储布尔值
2. **输出设备**(如门)触发:
- 接收logic_branch_listener 的输出信号 - TRUE信号触发开门动作
3. **级联组合**:
- 监听器的输出可接入新的logic_branch - 实现多级逻辑门串联

标准逻辑门实现
每种逻辑门均通过logic_branch_listener 配置不同输出规则实现:
中继门
用于解决某些引擎版本中的分支异常问题:
输出 | 目标实体 | 目标输入 | 参数 | 延迟 |
---|---|---|---|---|
OnAllFalse | MyNewBranch | SetValue | 0 | 0 |
OnAllTrue | MyNewBranch | SetValue | 1 | 0 |
与门(AND)
所有输入为TRUE时输出TRUE:
输出 | 目标实体 | 目标输入 | 参数 |
---|---|---|---|
OnAllFalse | branch_Z_N | SetValue | 0 |
OnAllTrue | branch_Z_N | SetValue | 1 |
OnMixed | branch_Z_N | SetValue | 0 |
或门(OR)
任意输入为TRUE时输出TRUE:
输出 | 目标实体 | 目标输入 | 参数 |
---|---|---|---|
OnAllFalse | branch_Z_N | SetValue | 0 |
OnAllTrue | branch_Z_N | SetValue | 1 |
OnMixed | branch_Z_N | SetValue | 1 |
非门(NOT)
输出与输入相反:
输出 | 目标实体 | 目标输入 | 参数 |
---|---|---|---|
OnAllFalse | branch_Z_N | SetValue | 1 |
OnAllTrue | branch_Z_N | SetValue | 0 |
与非门(NAND)
非全TRUE时输出TRUE:
输出 | 目标实体 | 目标输入 | 参数 |
---|---|---|---|
OnAllFalse | branch_Z_N | SetValue | 1 |
OnAllTrue | branch_Z_N | SetValue | 0 |
OnMixed | branch_Z_N | SetValue | 1 |
或非门(NOR)
全FALSE时输出TRUE:
输出 | 目标实体 | 目标输入 | 参数 |
---|---|---|---|
OnAllFalse | branch_Z_N | SetValue | 1 |
OnAllTrue | branch_Z_N | SetValue | 0 |
OnMixed | branch_Z_N | SetValue | 0 |
异或门(XOR)
仅当单输入为TRUE时输出TRUE:
输出 | 目标实体 | 目标输入 | 参数 |
---|---|---|---|
OnAllFalse | branch_Z_N | SetValue | 0 |
OnAllTrue | branch_Z_N | SetValue | 0 |
OnMixed | branch_Z_N | SetValue | 1 |
同或门(XNOR)
输入相同时输出TRUE:
输出 | 目标实体 | 目标输入 | 参数 |
---|---|---|---|
OnAllFalse | branch_Z_N | SetValue | 1 |
OnAllTrue | branch_Z_N | SetValue | 1 |
OnMixed | branch_Z_N | SetValue | 0 |