Added UI and more
This commit is contained in:
@@ -85,9 +85,9 @@ public class PlayerMovement : MonoBehaviour
|
||||
|
||||
if (IsMovementBlocked())
|
||||
{
|
||||
// Мёртвый стоит — гасим горизонталь, но гравитацию оставляем
|
||||
// Мёртвый — CharacterController выключен (как коллайдер), двигать нельзя
|
||||
horizontalVelocity = Vector3.zero;
|
||||
ApplyGravityOnly();
|
||||
verticalVelocity = 0f;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -96,6 +96,9 @@ public class PlayerMovement : MonoBehaviour
|
||||
HandleHorizontal();
|
||||
HandleJumpAndGravity();
|
||||
|
||||
// Контроллер могли выключить (смерть) между кадрами — Move на выключенном кинет ошибку
|
||||
if (!controller.enabled) return;
|
||||
|
||||
// Один общий Move за кадр — и горизонталь, и вертикаль
|
||||
Vector3 velocity = horizontalVelocity + Vector3.up * verticalVelocity;
|
||||
controller.Move(velocity * Time.deltaTime);
|
||||
@@ -216,20 +219,4 @@ public class PlayerMovement : MonoBehaviour
|
||||
verticalVelocity += g * Time.deltaTime;
|
||||
verticalVelocity = Mathf.Max(verticalVelocity, maxFallSpeed);
|
||||
}
|
||||
|
||||
// Используется когда движение заблокировано (смерть) — только падение
|
||||
private void ApplyGravityOnly()
|
||||
{
|
||||
if (controller == null) return;
|
||||
|
||||
if (controller.isGrounded && verticalVelocity < 0f)
|
||||
verticalVelocity = groundStickForce;
|
||||
else
|
||||
{
|
||||
verticalVelocity += gravity * Time.deltaTime;
|
||||
verticalVelocity = Mathf.Max(verticalVelocity, maxFallSpeed);
|
||||
}
|
||||
|
||||
controller.Move(Vector3.up * verticalVelocity * Time.deltaTime);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user