Единство объект не вращается - PullRequest
0 голосов
/ 25 мая 2019

Я пытаюсь повернуть объект в определенных границах, но объект не вращается.

public class shincon : MonoBehaviour
{
    Rigidbody rb2;
    float shinspeed = 10;

    // Use this for initialization
    void Start()
    {
        rb2 = GetComponent<Rigidbody>();
    }

    // Update is called once per frame
    void FixedUpdate()
    {
        float Posax = Input.GetAxis("leftshin");
        if (Posax != 0)
        {
            Vector3 move = new Vector3(shinspeed * Posax * Time.deltaTime, 0, 0);
            transform.rotation = Quaternion.identity;
            Vector3 euler = transform.rotation.eulerAngles;
            float clampx = Mathf.Clamp(move.x + euler.x, 0, 160);
            Vector3 ready = new Vector3(clampx - euler.x, 0, 0);
            Quaternion rmove = Quaternion.Euler(ready);

            rb2.MoveRotation(rb2.rotation * rmove);
        }
    }
}

Нет синтаксических ошибок, но он не будет вращаться.

1 Ответ

1 голос
/ 25 мая 2019

После строки

transform.rotation = Quaternion.identity;

Следующая

Vector3 euler = transform.rotation.eulerAngles;

всегда будет возвращать 0,0,0.

и далее

Quaternion rmove = Quaternion.Euler(ready);

В результате получается Quaternion.Identity, наконец,

rb2.MoveRotation(rb2.rotation * rmove);

также всегда приводит к Quaternion.Identity, поэтому объект никогда не будет вращаться.


Удаление строки

transform.rotation = Quaternion.identity;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...