public void ApplyGravityCubic(float gravity, float maxVelocity = Mathf.Infinity) { CurrentAcceleration = CurrentAcceleration.WithIncY(-gravity * Time.deltaTime); var verticalVelocity = CurrentVelocity.y + CurrentAcceleration.y * Time.deltaTime; verticalVelocity = Mathf.Max(verticalVelocity, -maxVelocity); SetVerticalVelocity(verticalVelocity); }
public void CancelMovementAlongAxis(Vector2 axis) { CurrentVelocity -= CurrentVelocity.Dot(axis) * axis; CurrentAcceleration -= CurrentAcceleration.Dot(axis) * axis; }