Example #1
0
        private void Movement()
        {
            if (!CanMove)
            {
                return;
            }

            var moveDirection =
                (_fixedAxisMovement ? Vector3.right : transform.right) * Input.GetAxis("Horizontal") +
                (_fixedAxisMovement ? Vector3.forward : transform.forward) * Input.GetAxis("Vertical");

            if (moveDirection.magnitude >= 1f)
            {
                moveDirection = moveDirection.normalized;
            }

            OnMovementUpdate?.Invoke(this, new MovementUpdateArgs {
                Direction = moveDirection,
                Speed     = _speed
            });

            _characterController.Move(moveDirection * (_speed * Time.deltaTime) + _gvelocity * Time.deltaTime);
            _ground.SetNormalAndPosition(Vector3.up, new Vector3(0f, transform.position.y, 0f));
        }
Example #2
0
 public static void BroadcastOnMovementUpdate(Vector3 vector)
 {
     OnMovementUpdate?.Invoke(vector);
 }