Зависит ли настройка радиана / градуса в Unity от пользовательских настроек? - PullRequest
1 голос
/ 27 апреля 2020

Я написал следующий код в Unity C#.

using UnityEngine;
using System.Text;
using System.IO;
using System;

public class TestClass : MonoBehaviour
{
    // Start is called 
    void Start()
    {
    }

    // Update is called once per frame
    void Update()
    {
         var rotationValue = "57.2958";
         this.transform.localRotation = Quaternion.Euler(float.Parse(rotationValue), float.Parse(rotationValue), float.Parse(rotationValue));
    }

    void Stop()
    {
    }
}

Этот код повернулся только на 57.2958 градусов в моей среде, но в чужой среде он вращался с огромной скоростью.

Я уже установил значение в градусах, но он вел себя так, как будто я умножил это значение на 57,2958.

Существует ли внутренний механизм вне сценариев Unity, который позволяет пользователям выбирать, использовать ли градусы или радиан

1 Ответ

2 голосов
/ 28 апреля 2020

Все функции вращения единицы принимают в градусах, а функции Mathf - в радианах. Ваш код не является допустимым C# кодом, вы уверены, что этот код вы использовали? Вам нужно добавить «f» после ваших чисел, чтобы они были числами с плавающей точкой, иначе они будут двойными. Это правильный код:

this.transform.localRotation = Quaternion.Euler(57.2958f, 57.2958f, 57.2958f);

Обратите внимание, что вам не нужно писать «это», большинство разработчиков этого не делают, поэтому вы можете написать это так:

transform.localRotation = Quaternion.Euler(57.2958f, 57.2958f, 57.2958f);

код НЕ должен отличаться на другом устройстве. Я настоятельно рекомендую вам обновить приведенный выше код с помощью примера, используемого обоими устройствами, четко показывающего разницу и некоторые значения, которые мы можем видеть.

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