- Чтобы добавить поворот персонажа в вашем скрипте на Unity, можно использовать Quaternion для вращения персонажа в направлении движения. Вот обновленный скрипт:
- using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public CharacterController controller;
public float walkSpeed = 5f;
public float runSpeed = 10f;
public float jumpHeight = 2f;
public float gravity = -9.81f;
private Vector3 velocity;
private bool isGrounded;
void Update()
{
isGrounded = controller.isGrounded;
if (isGrounded && velocity.y < 0)
{
velocity.y = 0f;
}
float moveSpeed = Input.GetKey(KeyCode.LeftShift) ? runSpeed : walkSpeed;
float moveX = Input.GetAxis("Horizontal") * moveSpeed;
float moveZ = Input.GetAxis("Vertical") * moveSpeed;
Vector3 move = transform.right * moveX + transform.forward * moveZ;
controller.Move(move * Time.deltaTime);
// Поворот персонажа в направлении движения
if (move != Vector3.zero)
{
Quaternion targetRotation = Quaternion.LookRotation(move);
transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, Time.deltaTime * 10f);
}
if (Input.GetButtonDown("Jump") && isGrounded)
{
velocity.y += Mathf.Sqrt(jumpHeight * -2f * gravity);
}
velocity.y += gravity * Time.deltaTime;
controller.Move(velocity * Time.deltaTime);
}
}
Поворот персонажа: Добавлен код для поворота персонажа в направлении движения с использованием Quaternion.LookRotation и Quaternion.Slerp.
Плавный поворот: Персонаж будет плавно поворачиваться в сторону движения, что сделает управление более естественным.
Теперь ваш персонаж будет поворачиваться в направлении, в котором он движется, как в большинстве игр на ПК.