IntercepterTask
Category: Intercepter
PreCondition
前置条件。
此任务接受一个条件任务 ConditionTask
作为前置测试条件,测试通过了,才执行子任务,否则返回失败。
可以不提供前置条件。如果不提供,则跳过测试步骤,直接执行子任务。
/**
* 可选项。
* 前置条件。如果不提供,则跳过测试步骤,直接执行子任务。
* @btprop 在 behavior-dog 属性检查器上可见
*/
public target: ConditionTask;
/**
* 通过条件。判断测试是否通过。
* @btprop 在 behavior-dog 属性检查器上可见
*/
public pass: ConditionStatus;
支持以下通过条件,
enum ConditionStatus {
/**
* 条件任务返回成功时,视为测试通过,否则未通过。
*/
FAILURE,
/**
* 条件任务返回失败时,视为测试通过,否则未通过。
*/
SUCCESS
};
PreConditions
前置条件。
此任务可接受多个条件任务 ConditionTask
作为前置测试条件,测试通过了,才执行子任务,否则返回失败。
可以不提供前置条件。如果不提供,则跳过测试步骤,直接执行子任务。
/**
* 可选项。
* 前置条件。如果不提供,则跳过测试步骤,直接执行子任务。
* @btprop 在 behavior-dog 属性检查器上可见
*/
public targets: ConditionTask[];
/**
* 通过条件。判断测试是否通过。
* @btprop 在 behavior-dog 属性检查器上可见
*/
public pass: ConditionStatus;
/**
* 按列表顺序对各个条件任务的执行结果做测试,
* 然后对测试结果做逻辑操作得出最终测试结果。
* @btprop 在 behavior-dog 属性检查器上可见
*/
public op: BinaryOperator;
支持以下通过条件,
enum ConditionStatus {
/**
* 条件任务返回成功时,视为测试通过,否则未通过。
*/
FAILURE,
/**
* 条件任务返回失败时,视为测试通过,否则未通过。
*/
SUCCESS
};
支持以下二进制操作符,
enum BinaryOperator {
/**
* a = b && c && d ...
*/
AND,
/**
* a = b || c || d ...
*/
OR
};
Delay
延迟执行子任务。
0
表示不延迟,直接执行子任务。- 负数和
Infinity
都可表示无限期延迟执行子任务。
/**
* 可选项。
* 共享变量,储存延迟时间。
* @btprop 在 behavior-dog 属性检查器上可见
*/
public delayTime: SharedNumber;
/**
* 当共享变量 delayTime 为空时,使用 delayTimeDft 作为延迟时间。
* 默认值是 0 ,表示不延迟。
* @btprop 在 behavior-dog 属性检查器上可见
*/
public delayTimeDft: number;
Cooldown
冷却子任务。
执行一次子任务之后,进入冷却状态,在此期间一直返回运行,且不会执行子任务。
冷却时间到才可重新执行子任务。
0
表示不冷却,直接执行子任务。- 负数和
Infinity
都可表示无限期冷却子任务。
/**
* 可选项。
* 共享变量,储存冷却时间。
* @btprop 在 behavior-dog 属性检查器上可见
*/
public cdTime: SharedNumber;
/**
* 当共享变量 cdTime 为空时,使用 cdTimeDft 作为冷却时间。
* 默认值是 0 ,表示不冷却。
* @btprop 在 behavior-dog 属性检查器上可见
*/
public cdTimeDft: number;
/**
* 当任务被打断时执行的策略。
* 默认值是 CLEAR_TIMER 。
* @btprop 在 behavior-dog 属性检查器上可见
*/
pulbic abortPolicy: CooldownAbortPolicyType;
支持以下打断策略,
enum CooldownAbortPolicyType {
/**
* 冷却时间归零。下一帧开始,可以执行子任务。
*/
CLEAR_TIMER,
/**
* 重置冷却时间。下一帧开始,重新开始冷却倒数。
*/
RESET_TIMER,
/**
* 保留当前剩余冷却时间。下一帧开始,继续当前冷却倒数。
*/
RESERVE_TIMER,
};
AfterFrames
指定帧数后执行子任务。
0
表示不执行子任务,直接返回失败。- 不支持无限帧数。
/**
* 可选项。
* 共享变量,储存帧数。
* @btprop 在 behavior-dog 属性检查器上可见
*/
public frames: SharedNumber;
/**
* 当共享变量 frames 为空时,使用 framesDft 。
* 默认值是 1 。
* @btprop 在 behavior-dog 属性检查器上可见
*/
public framesDft: number;
Gate
开关任务。
- 打开时,执行子任务。
- 关闭时,不执行子任务。
开关状态可由以下方法控制,
- 通过触发器
CtrlGate
,主动改变开关状态。 - 通过事件驱动,被动改变开关状态。
/**
* 开关是否打开。
* 默认值是 true 。
* @btprop 在 behavior-dog 属性检查器上可见
*/
public opened: boolean;
/**
* 可选项。
* 事件列表。收到列表中的事件时,打开开关。
* 默认值是 null 。
* @btprop 在 behavior-dog 属性检查器上可见
*/
public eventsOpen: string[];
/**
* 可选项。
* 事件列表。收到列表中的事件时,关闭开关。
* 默认值是 null 。
* @btprop 在 behavior-dog 属性检查器上可见
*/
public eventsClose: string[];
/**
* 可选项。
* 事件列表。收到列表中的事件时,切换开关。
* 默认值是 null 。
* @btprop 在 behavior-dog 属性检查器上可见
*/
public eventsToggle: string[];
/**
* 手动打开开关。
*/
public open(): void;
/**
* 手动关闭开关。
*/
public close(): void;
/**
* 手动切换开关。
*/
public toggle(): void;
Interrupt
中断任务。
中断可由以下方法触发,
- 通过触发器
RequestInterrupt
,主动发起中断请求。 - 通过事件驱动,被动中断。
/**
* 可选项。
* 事件列表。收到列表中的事件时,中断子任务。
* @btprop 在 behavior-dog 属性检查器上可见
*/
public eventsIrq: string[];
/**
* 手动中断。
*/
public req(): void;