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); }
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); }