void Update() { float hor_inp = Input.GetAxis("Horizontal"); float ver_inp = Input.GetAxis("Vertical"); if (hor_inp != 0.0f || ver_inp != 0.0f) { CharacterRef.Move(hor_inp, ver_inp); } RotateTowards(Input.mousePosition); if (Input.GetButton("Fire1")) { CharacterRef.Fire(); } }
protected override void UpdateState() { float distance = Vector2.Distance(Player.transform.position, transform.position); if (distance < FireRange) { State = AIState.FIRING; } else if (distance < ViewRange) { State = AIState.WALKING; } else { State = AIState.WAITING; } switch (State) { case AIState.WAITING: break; case AIState.WALKING: RotateTowards(Player.transform.position); Vector2 dir = (Player.transform.position - transform.position).normalized; HumanRef.Move(dir.x, dir.y); break; case AIState.FIRING: RotateTowards(Player.transform.position); HumanRef.Fire(); break; } }