public override void Update() { if (State == GunnerState.Run) { base.Update(); } else { Fire(); } if (stateChangeTime < Time.time) { stateChangeTime = Time.time + StateChangePerSec; float rand = Random.Range(0.0f, 1.0f); if (rand < 0.4f) { State = GunnerState.Fire; } else { State = GunnerState.Run; } } Vector3 playerToEnemy = Player.transform.position - transform.position; transform.up = -playerToEnemy.normalized; }
public override void Start() { base.Start(); State = GunnerState.Run; int x = Random.Range(1, 3); string a = x.ToString(); Player = GameObject.Find("Player" + a).transform; fireTime = 0; stateChangeTime = 0; }
//Used to switch from the last state to the new state, updates the game object to show the current state public void SetState(GunnerState state) { if (currentState != null) { currentState.OnStateExit(); } currentState = state; gameObject.name = "AI gunner in state " + state.GetType().Name; if (currentState != null) { currentState.OnStateEnter(); } }