【发布时间】:2017-02-16 14:43:29
【问题描述】:
我正在尝试使拖动对象成为可能。这个物体只能旋转这么多。 (类似于门)。
这是 abit 编辑的代码,用于旋转有效的对象。 我有 2 个用于最大旋转和最小旋转的向量。
每当用户拖动可交互对象时,都会调用此代码。 (类似于更新,但仅在拖动时)
if (GestureManager.Instance.IsNavigating &&
HandsManager.Instance.FocusedGameObject == gameObject)
{
//speed and navigiation of rotation
float rotationFactor;
rotationFactor = ManipulationManager.Instance.ManipulationPosition.y * RotationSensitivity;
totransform.Rotate(new Vector3(rotationFactor, 0, 0));
}
如果我可以在这里使用 if 语句,那就太好了。我尝试了很多东西,但它仍然无法正常工作。
如上所述,此处的代码粘贴有效。对象应该是可拖动的,但只能拖动到特定点。
totransform 是要旋转的变换
任何想法都会非常好,非常感谢。
亲切的问候。
【问题讨论】:
-
嗯,你尝试了什么?您可以在 totransform.Rotate 之前执行
Debug.Log(rotationFactor);并复制所需的最大和最小位置上的值,然后执行if (withinThatRange) { Rotate }。应该管用!或者更确切地说,先检查旋转。 -
顺便说一句,“totransform”不是错字,对吧?
-
对不起,我没有详细说明,我会改变它。 totransform 是将要转换的对象的转换。
-
如果你在做门,看看this。
标签: c# unity3d rotation quaternions hololens