嘿伙计们我和 ARKit 和 Unity 有一个小问题。
在我正在制作的游戏中,当玩家死亡时我正在重新加载我的场景,但是当重新加载场景时,所有游戏对象仍然处于与上一个会话相同的位置。当场景重新加载时,我希望所有对象都返回到它们的起始位置。
我看到一些关于位置和旋转的变量在代码中被标记为“静态”。我试过更改它们但是我遇到了很多编译错误。
有没有人知道这方面的方法?
创建此方法并在需要重置场景时调用它:
using UnityEngine.XR.iOS; . . . public void ResetScene() { ARKitWorldTrackingSessionConfiguration sessionConfig = new ARKitWorldTrackingSessionConfiguration ( UnityARAlignment.UnityARAlignmentGravity, UnityARPlaneDetection.Horizontal); UnityARSessionNativeInterface.GetARSessionNativeInterface().RunWithConfigAndOptions(sessionConfig, UnityARSessionRunOption.ARSessionRunOptionRemoveExistingAnchors | UnityARSessionRunOption.ARSessionRunOptionResetTracking); }
我找到了解决方案!
在“!UnityEditor”部分的 ARCameraManager 脚本中添加这些代码行。
UnityARSessionRunOption options = new UnityARSessionRunOption(); options = UnityARSessionRunOption.ARSessionRunOptionRemoveExistingAnchors | UnityARSessionRunOption.ARSessionRunOptionResetTracking; m_session.RunWithConfigAndOptions(config, options);
现在,每次重新加载场景时,都会重置所有 AR 元素(平面,锚点,摄像机跟踪数据)。
2 回答
创建此方法并在需要重置场景时调用它:
我找到了解决方案!
在“!UnityEditor”部分的 ARCameraManager 脚本中添加这些代码行。
现在,每次重新加载场景时,都会重置所有 AR 元素(平面,锚点,摄像机跟踪数据)。