Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
 void Update()
 {
     input.ReadInput();
     movement.Movement();
 }