public void Update() { if (mage.stateMachine.currentState == ChaseState.getInstance()) { Chase(mage.enemy); } else if (mage.stateMachine.currentState == FleeState.getInstance()) { Flee(mage.enemy); } }
// Update is called once per frame void Update() { //transform.LookAt(enemy); enemy = FindClosestEnemy(); if ( Vector3.Distance(transform.position, enemy.transform.position) >= attackDistance ) { Debug.Log("GO TOWARD ENEMY"); //Approach(enemy); if (stateMachine.currentState != AttackState.getInstance()) { stateMachine.ChangeState(ChaseState.getInstance()); } } if ( Vector3.Distance(transform.position, enemy.transform.position) <= attackDistance && Vector3.Distance(transform.position, enemy.transform.position) > runDistance ) { Debug.Log("ATTACK ENEMY"); if (stateMachine.currentState != AttackState.getInstance()) { stateMachine.ChangeState(AttackState.getInstance()); } } if (Vector3.Distance(transform.position, enemy.transform.position) <= runDistance) { Debug.Log("FLEE FROM ENEMY"); //Flee(enemy); if (stateMachine.currentState != FleeState.getInstance()) { stateMachine.ChangeState(FleeState.getInstance()); } } }