两个 3d 对象之间的统一旋转
Unity rotation between two 3d objects
我需要在 Unity 中同步 Head 和 Body 对象(它们都是 3d 对象)之间的变换并且需要满足流动条件:
- Head 和 Body 之间的翻译必须相同,喜欢 Fixed Join。
- x 轴和 z 轴必须自由旋转,
- 它们之间的 y 轴旋转小于或等于 30 度。这意味着如果Body的Y角为0,Head的Y角为31,那么Body的Y角将旋转1度,position不能改变。
我是 Unity 的新手。我花了 2 天时间阅读有关 Hinge Joint、Character Joint 和 Configurable Joint 的内容,但并不走运。非常感谢任何帮助,也欢迎使用 Unity 编辑器或 C# 脚本进行配置!
别说我什么都没给过你.... :
// gobal
private float rotationY = 0f;
private float sensitivityY = 2f;
void lockedRotation()
{
rotationY += Input.GetAxis("Mouse X") * sensitivityY;
rotationY = Mathf.Clamp (rotationZ, -15, 15);
transform.localEulerAngles = new Vector3(transform.localEulerAngles.x, -rotationY,transform.localEulerAngles.z);
}
现在我已经为您指明了正确的方向。玩这个,看看你能做什么。我们无法为您完成所有工作。祝你好运!
我需要在 Unity 中同步 Head 和 Body 对象(它们都是 3d 对象)之间的变换并且需要满足流动条件:
- Head 和 Body 之间的翻译必须相同,喜欢 Fixed Join。
- x 轴和 z 轴必须自由旋转,
- 它们之间的 y 轴旋转小于或等于 30 度。这意味着如果Body的Y角为0,Head的Y角为31,那么Body的Y角将旋转1度,position不能改变。
我是 Unity 的新手。我花了 2 天时间阅读有关 Hinge Joint、Character Joint 和 Configurable Joint 的内容,但并不走运。非常感谢任何帮助,也欢迎使用 Unity 编辑器或 C# 脚本进行配置!
别说我什么都没给过你.... :
// gobal
private float rotationY = 0f;
private float sensitivityY = 2f;
void lockedRotation()
{
rotationY += Input.GetAxis("Mouse X") * sensitivityY;
rotationY = Mathf.Clamp (rotationZ, -15, 15);
transform.localEulerAngles = new Vector3(transform.localEulerAngles.x, -rotationY,transform.localEulerAngles.z);
}
现在我已经为您指明了正确的方向。玩这个,看看你能做什么。我们无法为您完成所有工作。祝你好运!