Unity3d 基于运动学的世界被标记器运动弄得一团糟 基于运动学的世界因运动而混乱

Unity3d 基于运动学的世界被标记器运动弄得一团糟 基于运动学的世界因运动而混乱,unity3d,kudan,Unity3d,Kudan,您好,我一直在Unity3d中开发一款基于AR的简易游戏。在此之前,我一直在使用Vuforia在(多)跟踪器上部署我的场景。然而,我一直在用Kudan做测试,我很满意它在使用跟踪器时的跟踪性能 我的引擎是基于光线投射的碰撞,而不是“UnityEngine.Physics”(几乎所有的东西都是运动学的)。当我使用Kudan引擎将我的3d环境部署到跟踪器上时,我遇到了一个问题,我的整个物理都搞砸了。如果移动了标记,元素也随之移动,但轴似乎会随着标记而改变,但我的物理似乎会对旧轴方向做出响应。我

您好,我一直在Unity3d中开发一款基于AR的简易游戏。在此之前,我一直在使用Vuforia在(多)跟踪器上部署我的场景。然而,我一直在用Kudan做测试,我很满意它在使用跟踪器时的跟踪性能



我的引擎是基于光线投射的碰撞,而不是“UnityEngine.Physics”(几乎所有的东西都是运动学的)。当我使用Kudan引擎将我的3d环境部署到跟踪器上时,我遇到了一个问题,我的整个物理都搞砸了。如果移动了标记,元素也随之移动,但轴似乎会随着标记而改变,但我的物理似乎会对旧轴方向做出响应。我的角色总是站在世界Y轴上(而不是跟踪器内部的局部)。另一个问题是,我的播放器3D资源一直在“站立”和“下降”状态之间切换,最终剪辑并掉落到地板上(这可能是由于相机检测中的抖动)。




我想到的解决方案之一是使用局部坐标系,但我希望有另一种解决方案,因为当我使用Vuforia时,我不必做任何进一步的修正


欢迎使用任何链接或反馈。

您可以使用transform.InverseTransformPoint和transform.InverseTransformDirection与四元数.LookDirection相结合来获取kudan相机相对于MarkerTransformDriver对象的位置和旋转。这将允许您在世界空间中定位摄影机,并在unity3d世界原点保留任何要增强静态的内容

cameraPos = markerTransform.InverseTransformPoint(kudanCamera.position);
cameraRot = Quaternion.LookRotation(markerTransform.InverseTransformDirection (kudanCamera.transform.forward));

使用Kudan时,摄影机始终保持在原点(0,0,0),任何跟踪对象都会围绕其移动。如果你想继续使用Kudan,你必须切换到本地坐标系。谢谢。我只是怀疑而已。这让我接近了我对ARToolKit的需求。不过,这并不完全正确。我想可能一个轴的旋转方向是相反的。我在这里提出了另一个问题: