protected override bool Evaluate(AIBehaviors fsm)
        {
            bool cantSeePlayer = fsm.GetClosestPlayerWithinSight(objectFinder.GetTransforms(), false) == null;

            if (cantSeePlayer)
            {
                if (timerStarted)
                {
                    if (triggerTime < Time.time)
                    {
                        return(true);
                    }
                }
                else
                {
                    triggerTime  = Time.time + triggerAfterTime;
                    timerStarted = true;
                }
            }
            else
            {
                timerStarted = false;
            }

            return(false);
        }
Beispiel #2
0
 protected Transform GetTarget(AIBehaviors fsm)
 {
     if (findVisibleTargetsOnly)
     {
         return(fsm.GetClosestPlayerWithinSight(objectFinder.GetTransforms()));
     }
     else
     {
         return(fsm.GetClosestPlayer(objectFinder.GetTransforms()));
     }
 }
        protected override void Action(AIBehaviors fsm)
        {
            AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(mecanimLayerIndex);
            int hash = Animator.StringToHash(animationStates[0].name);

            if (hash == stateInfo.fullPathHash)
            {
                float curNormalizedTime = stateInfo.normalizedTime % 1.0f;

                if (curNormalizedTime > attackPoint && prevNormalizedTime < attackPoint)
                {
                    if (scriptWithAttackMethod != null)
                    {
                        TriggerCooldown();
                        Attack(fsm, fsm.GetClosestPlayerWithinSight(objectFinder.GetTransforms()));
                    }
                }

                prevNormalizedTime = curNormalizedTime;
            }
        }
 protected override bool Evaluate(AIBehaviors fsm)
 {
     seenPlayer = fsm.GetClosestPlayerWithinSight(objectFinder.GetTransforms(), true, sightTransformOverride);
     return(seenPlayer != null);
 }