@qwertyuss

Как ограничить вращение камеры по оси x?

Я новичок в С# програмировании, это скрипт на управление камерой (Unity).
Мне нужно ограничить вращение камеры по оси x 90 и -90.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CamControl : MonoBehaviour
{
    private float mouseX;
    private float mouseY;

    [Header("Чувствительность мыши")]
    public float sensitivityMouse = 200f;

    public Transform Player;
    // Start is called before the first frame update
    void Start()
    {
        Cursor.lockState = CursorLockMode.Locked;
    }

    // Update is called once per frame
    void Update()
    {
        mouseX = Input.GetAxis("Mouse X") * sensitivityMouse * Time.deltaTime;
        mouseY = Input.GetAxis("Mouse Y") * sensitivityMouse * Time.deltaTime;

        Player.Rotate(mouseX * new Vector3(0, 1, 0));
        transform.Rotate(-mouseY * new Vector3(1, 0, 0));  
    }
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
@Ezekiel4
Охотник на пиратов и сборщик монолитов
Есть функция Mathf.Clamp(float number, float min, float max), которая делает то, что вам нужно. Также для удобства работы, можете вынести наклон в отдельную внешнюю переменную. Выглядеть это будет как-то так:
//... class
float pitch;
// ... Update
pitch = Mathf.Clamp(pitch - mouseY, -90f, 90f);
transform.Rotate(new Vector3(pitch, 0, 0));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы