Добавлено меню с отказом от претензий

This commit is contained in:
2025-01-30 14:35:02 +03:00
parent 2ded056af2
commit b9c7bcb22f
18 changed files with 3841 additions and 39 deletions

View File

@ -0,0 +1,73 @@
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayerJumpScript : MonoBehaviour
{
[SerializeField] private InputActionProperty _JumpButton;
[SerializeField] private float _JumpHeight = 0f; // Высота прыжка
[SerializeField] private CharacterController _CharacterController;
[SerializeField] private LayerMask _GroundLayers;
[SerializeField] private float rad = 0;
private float _verticalVelocity = 0f; // Вертикальная скорость
private float _gravity = Physics.gravity.y; // Гравитация
private bool _isGrounded;
private void Update()
{
_isGrounded = IsGrounded();
//if (_JumpButton.action.WasPressedThisFrame())
//{
// if (_isGrounded)
// {
// Debug.Log("Will Jump from gruond");
// }
// else
// {
// Debug.Log("Not Jump");
// }
//}
// Если персонаж на земле, обнуляем вертикальную скорость и проверяем прыжок
if (_isGrounded)
{
_verticalVelocity = -1f; // Небольшое значение, чтобы персонаж не зависал в воздухе
// Если кнопка прыжка нажата
if (_JumpButton.action.WasPressedThisFrame())
{
Jump();
}
}
else
{
// Применяем гравитацию, если персонаж не на земле
_verticalVelocity += _gravity * Time.deltaTime;
}
// Перемещение персонажа с учетом вертикальной скорости
Vector3 movement = new Vector3(0, _verticalVelocity, 0);
if (_CharacterController.enabled == true)
{
_CharacterController.Move(movement * Time.deltaTime);
}
}
private bool IsGrounded()
{
return Physics.CheckSphere(transform.position, rad, _GroundLayers); // Радиус может быть отрегулирован
}
private void Jump()
{
if (_isGrounded)
{
// Применяем силу прыжка
_verticalVelocity = Mathf.Sqrt(_JumpHeight * -2f * _gravity); // Формула для прыжка с заданной высотой
}
}
}