3D игра с открытым миром через Браузер (WebGL Unity). GTA через браузер или трата времени?

แชร์
ฝัง
  • เผยแพร่เมื่อ 14 พ.ย. 2024

ความคิดเห็น • 4

  • @Alexbroadcasts
    @Alexbroadcasts  หลายเดือนก่อน

    using UnityEngine;
    public class FPControllerWEB : MonoBehaviour
    {
    public float moveSpeed = 5f; // Скорость движения
    public float mouseSensitivity = 2f; // Чувствительность мыши
    public float jumpForce = 5f; // Сила прыжка
    public LayerMask groundLayer; // Слой, представляющий землю
    private Rigidbody rb;

    private float rotationX = 0f; // Угол поворота по оси X
    public float upDownLimit = 80f; // Ограничение для поворота по оси X
    public bool isGrounded; // Проверка на нахождение на земле
    public float distanceGround = 1f; // Ограничение для поворота по оси X
    void Start()
    {
    rb = GetComponent(); // Получаем компонент Rigidbody
    }
    void FixedUpdate()
    {
    // Проверяем, на земле ли персонаж
    isGrounded = Physics.Raycast(transform.position, Vector3.down, distanceGround, groundLayer);
    // Получаем ввод с клавиатуры
    float moveHorizontal = Input.GetAxis("Horizontal");
    float moveVertical = Input.GetAxis("Vertical");
    // Создаем вектор движения в пространстве камеры
    Vector3 forward = Camera.main.transform.TransformDirection(Vector3.forward);
    Vector3 right = Camera.main.transform.TransformDirection(Vector3.right);

    // Нормализуем векторы для получения направления движения
    forward.y = 0; // Убираем влияние по вертикали
    right.y = 0; // Убираем влияние по вертикали
    forward.Normalize(); // Нормализация вектора для равномерного движения
    right.Normalize(); // Нормализация вектора для равномерного движения
    // Создаем вектор движения с учетом направления камеры
    Vector3 movement = forward * moveVertical + right * moveHorizontal;
    // Применяем силу к Rigidbody для движения
    rb.AddForce(movement * moveSpeed);
    // Вращение мыши
    float mouseX = Input.GetAxis("Mouse X") * mouseSensitivity;
    float mouseY = Input.GetAxis("Mouse Y") * mouseSensitivity;
    // Ограничиваем вращение вверх/вниз
    rotationX -= mouseY;
    rotationX = Mathf.Clamp(rotationX, -upDownLimit, upDownLimit);
    // Применяем вращение к объекту
    transform.localRotation = Quaternion.Euler(rotationX, transform.eulerAngles.y + mouseX, 0);
    // Прыжок
    if (isGrounded && Input.GetButtonDown("Jump")) // Проверяем, что персонаж на земле и нажата клавиша прыжка
    {
    rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse); // Применяем силу вверх
    }
    }
    }

  • @user-NSK_RUSSIA
    @user-NSK_RUSSIA 25 วันที่ผ่านมา

    Оооо, это круто😊