Ограничение угла поворота объекта - PullRequest
0 голосов
/ 09 июля 2019

Итак, мой друг, я попытался сделать канон, который в единстве 3d с прямоугольниками и окружностью.Мы хотим ограничить угол поворота канона более -90 градусами и менее 0 градусов.Вот коды:

Но при игре в игру канон поворачивается более чем на минус девяносто градусов и падает с земли.

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




public class PlayerController : MonoBehaviour
{
    private float rotation = 0f;
    public GameObject wheele;
    private float xMin = -1.0f, xMax = 1.0f;
    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.UpArrow))
        {
            if (rotation >= -90)
                transform.parent.transform.Rotate(new Vector3(0.0f, 0.0f, rotation));

            rotation -= 8;
            //Mathf.Clamp(rotation, -90.0f, 0);
        }
        if(Input.GetKeyDown(KeyCode.DownArrow))
        {
            if (rotation >= -90)
                transform.parent.transform.RotateAround(wheele.transform.position, Vector3.up,20);

            rotation += 2;
            Mathf.Clamp(rotation, -90.0f, 0);
        }


    }
}

Как вы можете видеть на следующем рисунке:

enter image description here

1 Ответ

3 голосов
/ 09 июля 2019

С https://docs.unity3d.com/ScriptReference/Mathf.Clamp.html

Возвращает
float Результат с плавающей запятой между минимальным и максимальным значениями.

Таким образом, вам нужно установить вращение на возвращаемое значение функции Mathf.Clamp, поскольку Clamp на самом деле ничего не делает с переданным параметром value!

Изменение:

Mathf.Clamp(rotation, -90.0f, 0);

Кому:

rotation = Mathf.Clamp(rotation, -90.0f, 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...