// Update is called once per frame void Update() { Vector3 direction = target.position - this.transform.position; state = character.State; state.Run(); direction.y = 0; if (Vector3.Distance(target.position, this.transform.position) > 10) { this.transform.rotation = Quaternion.Slerp(this.transform.rotation, Quaternion.LookRotation(direction), 0.1f); state = character.State; state.Walk(); } else { if (direction.magnitude > 1) { state = character.State; state.Run(); } else { state = character.State; state.Attack(); } } this.transform.Translate(0, 0, character.Speed); }
// Update is called once per frame void Update() { int x = 0; int z = 0; if (Input.GetButton("Horizontal")) { x = Mathf.RoundToInt(Input.GetAxisRaw("Horizontal")); } if (Input.GetButton("Vertical")) { z = Mathf.RoundToInt(Input.GetAxisRaw("Vertical")); } currentState.Move(x, z); if (!GameManager.isAI) { if (character.sprite == ai) { character.sprite = human; } if (Input.GetButton("Roll")) { currentState.Roll(x, z); } if (Input.GetButton("Fire1")) { currentState.Attack(); } if (GameManager.hasPhone) { if (Input.GetButtonDown("Fire2")) { currentState.Shoot(); } if (Input.GetButtonDown("Fire3")) { currentState.Stungun(); } if (Input.GetButtonDown("Heal")) { currentState.Heal(); } if (atPuzzleTerminal && Input.GetButtonDown("Interact")) { atPuzzleTerminal = false; currentState.Puzzle(currentFirewall); } } } else if (GameManager.isAI) { if (character.sprite == human) { character.sprite = ai; } Debug.Log("am AI"); if (Input.GetButtonDown("SpawnCube")) { currentState.SpawnCube(); } if (Input.GetButtonDown("DespawnCube")) { currentState.DespawnCube(); } } if (!GameManager.isAI) { currentState = currentState.CheckAlive(); } currentState = currentState.UpdateState(); if (!GameManager.isAI) { playerDetails.UpdateDetails(); } else { aiDetails.UpdateDetails(); } }