Пример #1
0
        void Update()
        {
            delta = Time.deltaTime;
            dis   = DistanceFromTarget();
            angle = AngleToTarget();
            if (target)
            {
                dirToTarget = target.position - transform.position;
            }
            states.dirToTarget = dirToTarget;

            switch (aiState)
            {
            case AIState.far:
                HandleFarSight();
                break;

            case AIState.close:
                HandleCloseSight();
                break;

            case AIState.inSight:
                Insight();
                break;

            case AIState.attacking:
                if (states.canMove)
                {
                    states.rotateToTarget = true;
                    aiState = AIState.inSight;
                }
                break;

            default:
                break;
            }

            states.Tick(delta);
        }
Пример #2
0
        private void Update()
        {
            Delta  = Time.deltaTime;
            Dis    = DistanceFromTarget();
            _angle = AngleTotarget();


            if (Vector3.Distance(transform.position, PLAYERPOS) <= distancefromtarget)
            {
                States.anim.SetFloat(States.Can_move, -1);
            }

            if (target)
            {
                DirToTarget = target.position - transform.position;
            }


            if (Dis > Sight || _angle > FOV_Angle)
            {
                _AiStates             = AIstates.far;
                States.RotateToTarget = false;
            }

            // checking player pos // updating.
            if (Dis < Sight)
            {
                PLAYERPOS = target.position;
            }

            handleDeath();


            States.DirtoTarget = DirToTarget;

            switch (_AiStates)
            {
            case AIstates.far:
                States.AgentAI.isStopped = true;
                HandleFarSight();
                break;

            case AIstates.close:
                HandleCloseSight();
                break;

            case AIstates.InSight:
                In_Sight();

                break;

            case AIstates.Attacking:
                if (States.CanMove)
                {
                    _AiStates             = AIstates.InSight;
                    States.RotateToTarget = true;
                }

                break;

            case AIstates.death:
                handleDeath();
                break;

            default:
                break;
            }

            States.Tick(Delta);
        }