Example #1
0
        public override bool IsTrue(BtWorkingData workData)
        {
            AIEntityWorkingData this_data   = workData.As <AIEntityWorkingData>();
            Vector3             target_pos  = MathHelper.Vector3ZeroY(this_data.EntityAi.GetBbValue <Vector3>(BtEntityAi.BBKEY_NEXTMOVINGPOSITION, Vector3.zero));
            Vector3             current_pos = MathHelper.Vector3ZeroY(this_data.EntityAi.BaseEntity.EntityController.WroldPosition);
            bool result = TMathUtils.GetDistance2D(target_pos, current_pos) < 1f;

            return(result);
        }
Example #2
0
        protected override int OnExecute(BtWorkingData workData)
        {
            AIEntityWorkingData thisData = workData.As <AIEntityWorkingData>();

            if (_userData._attackingTime > 0)
            {
                _userData._attackingTime -= thisData.DeltaTime;
                if (_userData._attackingTime < 0)
                {
                    LogManager.Log("播放攻击动画OnExecute,[{0}]", TimeModule.RealtimeSinceStartup);
                }
            }
            return(BtRunningStatus.EXECUTING);
        }
        public void Init(BaseEntity owner, int id)
        {
            this.owner = owner;

            BTInfo                     = AIEntityBehaviorTreeFactory.GetBTInfo(id);
            _behaviorTree              = BTInfo.RootNode;
            BehaviorWorkingData        = new AIEntityWorkingData();
            BehaviorWorkingData.entity = this;
            BehaviorWorkingData.Init(BTInfo.Offsets, BTInfo.MemSize);
            BehaviorWorkingData.entityTF           = owner.transform;
            BehaviorWorkingData.EntityAnimatorView = new CAnimatorView().Init(owner);
            _blackboard             = new BlackBoard();
            _lastTriggeredAnimation = string.Empty;
        }