added jumps

This commit is contained in:
MrTorex committed 2026-02-23 12:05:54 +03:00
1 parent 43ddb1b3b5
commit ec8d233189
4 files changed
+61 -4

No files matched your search

@@ -8,12 +8,26 @@ namespace Code.Gameplay.Character.Controller
private readonly float _maxStableMoveSpeed;
private readonly float _sprintMoveSpeed;
private readonly float _stableMovementSharpness;
private readonly float _jumpSpeed;
public bool JumpRequested { get; private set; }
public GroundMovementSystem(float maxStableMoveSpeed, float sprintMoveSpeed, float stableMovementSharpness)
public GroundMovementSystem(float maxStableMoveSpeed, float sprintMoveSpeed, float stableMovementSharpness, float jumpSpeed)
{
_maxStableMoveSpeed = maxStableMoveSpeed;
_sprintMoveSpeed = sprintMoveSpeed;
_stableMovementSharpness = stableMovementSharpness;
_jumpSpeed = jumpSpeed;
}
public void RequestJump(bool jumpPressed)
{
if (jumpPressed)
JumpRequested = true;
}
public void CancelJumpRequest()
{
JumpRequested = false;
}
public void UpdateVelocity(
@@ -41,6 +55,18 @@ namespace Code.Gameplay.Character.Controller
targetMovementVelocity,
1f - Mathf.Exp(-_stableMovementSharpness * deltaTime)
);
if (JumpRequested)
{
currentVelocity += motor.CharacterUp * _jumpSpeed - Vector3.Project(currentVelocity, motor.CharacterUp);
JumpRequested = false;
motor.ForceUnground();
if (motor.CharacterController is CustomCharacterController controller)
{
controller.TriggerJump();
}
}
}
}
}