gpt4 book ai didi

c# - Unity ARKit SetWorldOrigin - 错误的旋转

转载 作者:行者123 更新时间:2023-11-29 13:56:33 25 4
gpt4 key购买 nike

我尝试使用 SetWorldOrigin 将新的位置和方向设置为原点

我正在使用 Unity 2018.3.0f2 和 ARKit 2.0

我的起始对齐是:“Unity AR Alignment Gravity And Heading”

在我的室外测试环境中,我有一个可视化的北向已知点。我可以在这一点上放置一个游戏对象 (newOriginGO) 并将其旋转到可视化的北方方向。问题是,虚拟对象被旋转到错误的位置。我只测试了翻译,这很有效。这是一个代码片段:

GameObject translationToLastPosition = new GameObject();
GameObject rotateToNewRotation = new GameObject();
GameObject translationToNewPosition = new GameObject();

translationToLastPosition.transform.position = -lastOriginP;
rotateToNewRotation.transform.eulerAngles = lastOriginR - newOriginGO.transform.eulerAngles;
translationToNewPosition.transform.position = lastOriginP - newOriginGO.transform.position;

UnityARSessionNativeInterface.GetARSessionNativeInterface().SetWorldOrigin(translationToLastPosition.transform);
UnityARSessionNativeInterface.GetARSessionNativeInterface().SetWorldOrigin(rotateToNewRotation.transform);
UnityARSessionNativeInterface.GetARSessionNativeInterface().SetWorldOrigin(translationToNewPosition.transform);

lastOriginP = newOriginGO.transform.position;
lastOriginR = newOriginGO.transform.eulerAngles;

因为 SetWorldOrigin需要一个相对变换,我正在围绕最后一个原点旋转我的游戏对象,使用 transform.RotateAround(lastOriginP, Vector3.up, angle),我试图将 WorldOrigin 平移回最后一个原点,旋转WorldOrigin 然后转换回实际位置。是我思维有误,还是我没有完全理解 SetWorldOrigin 方法的工作原理? ARKit SetWorldOrigin 如何影响 Unity 世界空间坐标系?

最佳答案

好吧,我终于找到了另一个解决方案。我没有使用 ARKit 更改 WorldOrigin,而是将我所有的 3D 对象作为一个空游戏对象的子对象。然后我用我的修正值(平移和旋转)改变了这个游戏对象。

关于c# - Unity ARKit SetWorldOrigin - 错误的旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55359377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com