private void Update() { // If paused, don't run any input or movement. if (GameStateManager.CurrentState == GameState.Paused) { return; } _input.ReadInput(); _input.ReadLookInput(); if (_weaponSwitcher != null) { _currentWeapon = _weaponSwitcher.CurrentWeapon; } if (_currentWeapon == null) { print("no current weapon assigned in Character"); } else { _input.ReadShoot(_currentWeapon.Settings.HoldToFire); if (_input.Shoot) { _currentWeapon.Shoot(); } } if (_movement.ApplyJumpOrFlip()) { StartCoroutine(_movement.FlipCharacterCoroutine(_input.X, _input.Z)); } // FIXME: This is a bandaid to use "LookAt" function instead of having to calculate the proper eulerAngle. if (_settings.UseAI && _brains.CurrentState is AttackState) { Vector3 bodyLookAtTarget = new Vector3(_brains.Target.position.x, transform.position.y, _brains.Target.position.z); transform.LookAt(bodyLookAtTarget); Vector3 gunLookAtTarget = _brains.Target.position; _pointOfView.LookAt(gunLookAtTarget); } else { _movement.ApplyLookRotation(); } }
void Update() { input.ReadInput(); movement.Movement(); }