lvjincheng 3 vuotta sitten
vanhempi
sitoutus
3bebe0783a

+ 14 - 18
Assets/BowArrow/Modules/NewUserGuider/NewUserGuider.cs

@@ -41,12 +41,14 @@ public class NewUserGuider : MonoBehaviour
     {   
         SetCanvasSortOrder(5);
 
-        //延迟3帧,避免因为目标ui还未初始完成导致获取到的ui信息(位置大小等)不准确
-        int waitFrameCount = 0;
-        do {
-            waitFrameCount++;
-            yield return null;    
-        } while (waitFrameCount < 3);
+        if (config.delayExecute) {
+            //延迟3帧,避免因为目标ui还未初始完成导致获取到的ui信息(位置大小等)不准确
+            int waitFrameCount = 0;
+            do {
+                waitFrameCount++;
+                yield return null;    
+            } while (waitFrameCount < 3);
+        }
         
         customPreparePass = true;
         while (config.onPrepare != null) {
@@ -84,7 +86,12 @@ public class NewUserGuider : MonoBehaviour
             seq1.Append(iconPointer.DOMove(oldPos, 0.5f));
             seq1.SetLoops(-1);
             seq1.SetUpdate(true);
-            AnimateIconPointerHit();
+            seq2 = DOTween.Sequence();
+            Vector3 s = iconPointerHit.localScale;
+            seq2.Append(iconPointerHit.DOScale(s * 0.8f, 0.5f));
+            seq2.Append(iconPointerHit.DOScale(s, 0.5f));
+            seq2.SetLoops(-1);
+            seq2.SetUpdate(true);
         }
 
         switch (config.frameTipPivot) {
@@ -130,17 +137,6 @@ public class NewUserGuider : MonoBehaviour
         config.onStart?.Invoke(this);
     }
 
-    public void AnimateIconPointerHit()
-    {
-        if (seq2 != null && seq2.IsActive()) seq2.Kill();
-        seq2 = DOTween.Sequence();
-        Vector3 s = iconPointerHit.localScale;
-        seq2.Append(iconPointerHit.DOScale(s * 0.8f, 0.5f));
-        seq2.Append(iconPointerHit.DOScale(s, 0.5f));
-        seq2.SetLoops(-1);
-        seq2.SetUpdate(true);
-    }
-
     public void OnClick_Skip()
     {
         AudioMgr.ins.PlayBtn();

+ 6 - 3
Assets/BowArrow/Modules/NewUserGuider/NewUserGuiderManager.cs

@@ -199,6 +199,7 @@ public class NewUserGuiderManager : MonoBehaviour
         config.key = "陀螺仪校准-开始";
         config.frameTipPivot = "rt";
         config.frameTipText = "";
+        config.delayExecute = false;
         config.onPrepare = (g) => {
             g.SetCanvasSortOrder(DeviceCalibrateView.ins.GetComponent<Canvas>().sortingOrder + 1);
             RectTransform btn = DeviceCalibrateView.ins.transform.Find("Gyr/Button") as RectTransform;
@@ -213,7 +214,7 @@ public class NewUserGuiderManager : MonoBehaviour
         config.onStart = (g) => {
             g.GetMaskClickedEvent().RemoveAllListeners();
             g.action_Update += () => {
-                bool doing = DeviceCalibrateView.ins.calibrateMagDoing;
+                bool doing = DeviceCalibrateView.ins.gyrCalibrating;
                 g.iconPointer.gameObject.SetActive(!doing);
                 g.iconPointerHit.gameObject.SetActive(!doing);
             };
@@ -295,6 +296,7 @@ public class NewUserGuiderManager : MonoBehaviour
         config.key = "地磁计校准-开始";
         config.frameTipPivot = "rt";
         config.frameTipText = "";
+        config.delayExecute = false;
         config.onPrepare = (g) => {
             g.SetCanvasSortOrder(DeviceCalibrateView.ins.GetComponent<Canvas>().sortingOrder + 1);
             RectTransform btn = DeviceCalibrateView.ins.transform.Find("Mag/MagReset") as RectTransform;
@@ -496,6 +498,7 @@ public class NewUserGuiderManager : MonoBehaviour
                 g.customPreparePass = false;
                 return;
             }
+            LayoutRebuilder.ForceRebuildLayoutImmediate(TimeLimitGameDistanceSelectView.ins.transform as RectTransform);
             g.customPreparePass = true;
             g.hollowOutMask.enabled = true;
             g.ActiveBtnSkip(true);
@@ -614,8 +617,6 @@ public class NewUserGuiderManager : MonoBehaviour
                 g.action_OnDestroy += () => gameMode.ResumeTimeCounting(g);
             }
 
-            g.AnimateIconPointerHit();
-
             RectTransform iconRect = g.transform.Find("IconRect") as RectTransform;
             iconRect.gameObject.SetActive(true);
             g.hollowOutMask.isTargetRectCanThrough = false;
@@ -637,6 +638,7 @@ public class NewUserGuiderManager : MonoBehaviour
                     g.clickedWillPlayAudioBtn = false;
                     g.OnClick_ToNext();
                 }
+                g.iconPointerHit.transform.position = CrossHair.ins.transform.position;
             };
         };
         configs.Add(config.key, config);
@@ -752,4 +754,5 @@ public class NewUserGuiderConfig
     public string frameTipTextKey = null;
     public Action<NewUserGuider> onPrepare;
     public Action<NewUserGuider> onStart;
+    public bool delayExecute = true;
 }