lvjincheng 3 年 前
コミット
f0dde34660

+ 5 - 5
Assets/BowArrow/Resources/Prefabs/Popups/PopupRoot.prefab

@@ -538,10 +538,10 @@ RectTransform:
   m_Father: {fileID: 2679604105632667801}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0.5, y: 0.5}
-  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
   m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 160, y: 100}
+  m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &3122842966323161357
 CanvasRenderer:
@@ -575,13 +575,13 @@ MonoBehaviour:
     m_Font: {fileID: 12800000, guid: 1ad2cf6c2f09744489d8c60b3fe3bab2, type: 3}
     m_FontSize: 36
     m_FontStyle: 0
-    m_BestFit: 0
+    m_BestFit: 1
     m_MinSize: 2
     m_MaxSize: 40
     m_Alignment: 4
     m_AlignByGeometry: 0
     m_RichText: 1
-    m_HorizontalOverflow: 1
+    m_HorizontalOverflow: 0
     m_VerticalOverflow: 0
     m_LineSpacing: 1
   m_Text: "\u63D0\u793A"

+ 26 - 0
Assets/BowArrow/Scripts/View/DeviceCalibrateView.cs

@@ -40,6 +40,7 @@ public class DeviceCalibrateView : MonoBehaviour
         btnMagCalibrate.GetComponent<Button>().onClick.AddListener(ClickMagCalibrate);
         btnIdentityCalibrate.GetComponent<Button>().onClick.AddListener(ClickIdentityCalibrate);
         magReset.GetComponent<Button>().onClick.AddListener(() => {
+            ResetCalibrateMagTimeout();
             AimHandler.ins.MagCalibrater = new o0._9Axis.MagnetometerAutoCalibrater();
             PlayerPrefs.DeleteKey("new_mag_record");
         });
@@ -90,6 +91,10 @@ public class DeviceCalibrateView : MonoBehaviour
     }
 
     bool canUpdateGyrCalibrateProgress = false;
+
+    float calibrateMagStartTime = 0; //地磁校准开始时刻
+    bool calibrateMagTimeoutTipShowed = false; //地磁校准超时后,是否已提示
+
     void Update()
     {   
         if (canUpdateGyrCalibrateProgress) {
@@ -104,6 +109,14 @@ public class DeviceCalibrateView : MonoBehaviour
                 tipMag1.SetActive(true);
                 tipMag2.SetActive(false);
                 magReset.SetActive(true);
+
+                if ( //地磁校准超时提示
+                    !calibrateMagTimeoutTipShowed && 
+                    Time.realtimeSinceStartup - calibrateMagStartTime > 20
+                ) {
+                    calibrateMagTimeoutTipShowed = true;
+                    PopupMgr.ins.ShowTipTop("存在磁场干扰,请远离电子设备后点击重新校准!");
+                }
             } else {
                 tipMag1.SetActive(false);
                 tipMag2.SetActive(true);
@@ -145,6 +158,19 @@ public class DeviceCalibrateView : MonoBehaviour
         this.transform.Find("Gyr").gameObject.SetActive(deviceCalibrateItem == DeviceCalibrateItem.Gyr);
         this.transform.Find("Mag").gameObject.SetActive(deviceCalibrateItem == DeviceCalibrateItem.Mag);
         this.transform.Find("Identity").gameObject.SetActive(deviceCalibrateItem == DeviceCalibrateItem.Identity);
+        OnRefreshPage();
+    }
+
+    void OnRefreshPage() {
+        if (deviceCalibrateItem == DeviceCalibrateItem.Mag) {
+            ResetCalibrateMagTimeout();
+        }
+    }
+
+    //重置地磁校准超时检测
+    void ResetCalibrateMagTimeout() {
+        calibrateMagStartTime = Time.realtimeSinceStartup;
+        calibrateMagTimeoutTipShowed = false;
     }
 
     // ------ 陀螺仪校准 ------