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)); }
public static void BroadcastOnMovementUpdate(Vector3 vector) { OnMovementUpdate?.Invoke(vector); }