C# 如何将旋转转换为0-1浮点
我的虚拟现实游戏中有一个可交互的杠杆。我用了一个铰链关节来旋转,效果很好。我想使用X轴旋转来发送一个名为“outputFloat”的变量。我最大的问题是我需要将操纵杆的旋转转换为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;
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);
}
}