Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将旋转转换为0-1浮点_C#_Unity3d - Fatal编程技术网

C# 如何将旋转转换为0-1浮点

C# 如何将旋转转换为0-1浮点,c#,unity3d,C#,Unity3d,我的虚拟现实游戏中有一个可交互的杠杆。我用了一个铰链关节来旋转,效果很好。我想使用X轴旋转来发送一个名为“outputFloat”的变量。我最大的问题是我需要将操纵杆的旋转转换为0-1浮动。我把一切都搞得一团糟好几个小时了,但就是找不到工作。我将在下面附上我的代码 public class lever : MonoBehaviour { public Transform leverArm; public float min; public float max;

我的虚拟现实游戏中有一个可交互的杠杆。我用了一个铰链关节来旋转,效果很好。我想使用X轴旋转来发送一个名为“outputFloat”的变量。我最大的问题是我需要将操纵杆的旋转转换为0-1浮动。我把一切都搞得一团糟好几个小时了,但就是找不到工作。我将在下面附上我的代码

    public class lever : MonoBehaviour
{
    public Transform leverArm;
    public float min;
    public float max;

    public float outputFloat;

    void Update()
    {
        Mathf.Clamp(leverArm.localRotation.x, min, max);
        outputFloat = leverArm.localRotation.x * max;
        outputFloat = 1 - outputFloat;

        Debug.Log(outputFloat);
    }

}

你已经知道最大值是360,这不管用吗

void Update()
{
    outputFloat = leverArm.localEulerAngles.x;
    outputFloat = 1 - Mathf.Abs(outputFloat/360);
    Debug.Log(outputFloat);
}

终于成功了!这是我使用的代码。

transform.localRotation
是一个。除非你确切知道自己在做什么,否则不要使用四元数的分量。相反,您可能希望使用来获得x轴欧拉角。是的,谢谢您的更正:)
    public class lever : MonoBehaviour
{
    public Transform leverArm;
    public float min = 270f;
    public float max = 340f;

    public float outputFloat;

    void Update()
    {
        outputFloat = (leverArm.localEulerAngles.x - min) / (max - min);
        Debug.Log(outputFloat);
    }

}