基于运动的世界被混淆在运动中
你好,我一直在Unity3d开发一款简陋的基于AR的游戏 . 在此之前,我一直在使用Vuforia在(多)跟踪器上部署我的场景 . 但是,我一直在和Kudan一起进行测试,我对使用跟踪器时的跟踪性能非常满意 .
http://i.imgur.com/nTHs6cM.png
我的引擎基于光线投射的碰撞而不是"UnityEngine.Physics"(几乎所有东西都是运动学的) . 当我使用Kudan引擎在跟踪器上部署我的3D环境时,我偶然发现了一个问题,我的整个物理都搞砸了 . 如果移动标记,则元素随之移动,但轴似乎随标记而变化,但我的物理似乎响应了我的旧轴方向 . 我的角色总是站在世界Y轴(不是跟踪器内的本地)的上方 . 另一个问题是我的播放器3D资产在"standing"和"falling"状态之间保持切换并最终在地板上剪切和掉落(这可能是由于摄像机检测中的抖动) .
http://i.imgur.com/ROn4uEz.png
想到的解决方案之一是使用本地坐标系,但我希望有一个替代解决方案,因为当我使用Vuforia时,我不需要进行任何进一步的修正 .
任何链接或反馈都表示赞赏 .
1 回答
您可以使用transform.InverseTransformPoint和transform.InverseTransformDirection结合Quaternion.LookDirection来获取kudan相机相对于MarkerTransformDriver对象的位置和旋转 . 这将允许您将相机放置在世界空间中,并保留您想要在unity3d世界原点增强静态的任何内容 .