TaskTriggerType 根据事件类型来确定节点

namespace BehaviorDesigner.Samples
{
    public enum TaskTriggerType { IdleJumpSphereCollisionPlaySound }
    [TaskCategory("MiniGauntlet")]
    [TaskDescription("A composite task that will choose its child based on the latest collision/trigger event.")]
    public class TaskTriggerSelector : Composite
    {
        // Start with the idle task
        private int nextTaskIndex = 0;

        public override int CurrentChildIndex()
        {
            // The next task index will be 0 unless a collision or trigger event has occurred
            return nextTaskIndex;
        }

        public override void OnChildExecuted(TaskStatus childStatus)
        {
            // Set the next task index back to 0 immediately after the child has executed to prevent a non-idle task from running multiple tiles
            nextTaskIndex = 0;
        }

        // OnTriggerEnter is called when the agent runs into a trigger that specifies what task to run text
        public override void OnTriggerEnter(Collider other)
        {
            TriggerType triggerType = null;
            if ((triggerType = other.GetComponent<TriggerType>()) != null) {
                nextTaskIndex = (int)triggerType.triggerType;
            }
        }

        // OnCollisionEnter is called when a sphere collides with the player
        public override void OnCollisionEnter(Collision collision)
        {
            nextTaskIndex = (int)TaskTriggerType.SphereCollision;
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值