蓝色星空 1 年間 前
コミット
69abf8a6a6
1 ファイル変更33 行追加2 行削除
  1. 33 2
      Assets/Scripts/Blue/Controller/ImmersalLocalControl.cs

+ 33 - 2
Assets/Scripts/Blue/Controller/ImmersalLocalControl.cs

@@ -2,6 +2,11 @@ using Immersal.AR;
 using UnityEngine;
 using Blue;
 using UnityEngine.UI;
+using Immersal;
+using System.Collections;
+using NRKernal;
+using XRTool.Util;
+using static IsLocation;
 
 /// <summary>
 /// 打开景点后是否开启点云定位功能
@@ -39,9 +44,9 @@ public class ImmersalLocalControl : AbstractController
         if(isOn)
         {
             // 启动脚本,开启定位
-            Y_Location_Toggle.isOn = true;
+            //Y_Location_Toggle.isOn = true;
             XRLocalizer.enabled = true;
-
+            StartCoroutine(StartNewLocalize());
             Y_Location_Toggle.transform.Find("Background").GetComponent<Image>().color = blue;
             Y_Location_Toggle.transform.Find("Background/Checkmark").GetComponent<Image>().color = blue;
             N_Location_Toggle.transform.Find("Background").GetComponent<Image>().color = white;
@@ -70,4 +75,30 @@ public class ImmersalLocalControl : AbstractController
         isOn = e.isLocation;
         this.SendCommand(new ImmersalSetLocalCommand(id,projectId,isOn));
     }
+
+    IEnumerator StartNewLocalize()
+    {
+        yield return null;
+        Ref();
+        this.SendCommand(new SetImmersalLocalCommand(true));
+    }
+    public void Ref()
+    {
+        ImmersalSDK.Instance.Localizer.Reset();
+        NRSessionManager.Instance.NRHMDPoseTracker.ChangeTo0Dof((result) =>
+        {
+            TimerMgr.Instance.CreateTimer(() => {
+
+                NRSessionManager.Instance.NRHMDPoseTracker.ChangeTo6Dof((result) =>
+                {
+                    var poseTracker = NRSessionManager.Instance.NRHMDPoseTracker;
+                    poseTracker.ResetWorldMatrix(false);
+                    ImmersalSDK.Instance.Localizer.Reset();
+                    NRInput.RecenterController();
+                    SetLocalTime.isActive = true;
+                });
+
+            }, 1f);
+        });
+    }
 }