Procházet zdrojové kódy

认证登录重试

lvjincheng před 3 roky
rodič
revize
b9c1d30f18

+ 17 - 0
Assets/BowArrow/Prefabs/Parts/Home/AuthLoginMask/AuthLoginMask.cs

@@ -29,6 +29,7 @@ public class AuthLoginMask : MonoBehaviour
             GetComponentInChildren<Text>().text = 
                 TextAutoLanguage2.GetTextByKey("home_loginAuth");
         }
+        transform.Find("BtnRetry").gameObject.SetActive(false);
     }
 
     public void SetRetryCount(int count) {
@@ -38,6 +39,22 @@ public class AuthLoginMask : MonoBehaviour
         }
     }
 
+    public void SetAutoRetryFail()
+    {
+        if (gameObject.activeSelf) {
+            GetComponentInChildren<Text>().text = 
+                TextAutoLanguage2.GetTextByKey("home_loginAuthFail");
+            transform.Find("BtnRetry").gameObject.SetActive(true);
+        }
+    }
+
+    public void OnClick_Retry()
+    {
+        AudioMgr.ins.PlayBtn();
+        SetVisiable(true);
+        UserPlayer.ins.RetryRequestUserInfoAvoidFail();
+    }
+
     public void SetText(string text) {
         GetComponentInChildren<Text>().text = text;
     }

+ 229 - 0
Assets/BowArrow/Prefabs/Parts/Home/AuthLoginMask/AuthLoginMask.prefab

@@ -187,6 +187,7 @@ RectTransform:
   m_Children:
   - {fileID: 1943920009592652101}
   - {fileID: 1943920010100671912}
+  - {fileID: 2782570302269490679}
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -268,3 +269,231 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 242623dbdd5cd8243baf7043899bd215, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+--- !u!1 &5860994343694096145
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2782570302269490679}
+  - component: {fileID: 2278013370521133226}
+  - component: {fileID: 338174130105400904}
+  - component: {fileID: 1714673966872054080}
+  m_Layer: 5
+  m_Name: BtnRetry
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &2782570302269490679
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5860994343694096145}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 4345545755494972119}
+  m_Father: {fileID: 1943920011359616541}
+  m_RootOrder: 2
+  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_AnchoredPosition: {x: 0, y: -205}
+  m_SizeDelta: {x: 165, y: 60}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &2278013370521133226
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5860994343694096145}
+  m_CullTransparentMesh: 1
+--- !u!114 &338174130105400904
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5860994343694096145}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 8ccd496b30ced39438603d237003eafe, type: 3}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &1714673966872054080
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5860994343694096145}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 338174130105400904}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls:
+      - m_Target: {fileID: 1943920011359616537}
+        m_TargetAssemblyTypeName: AuthLoginMask, Assembly-CSharp
+        m_MethodName: OnClick_Retry
+        m_Mode: 1
+        m_Arguments:
+          m_ObjectArgument: {fileID: 0}
+          m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+          m_IntArgument: 0
+          m_FloatArgument: 0
+          m_StringArgument: 
+          m_BoolArgument: 0
+        m_CallState: 2
+--- !u!1 &5964666667873660501
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4345545755494972119}
+  - component: {fileID: 2583986034352529907}
+  - component: {fileID: 6769026385614052745}
+  - component: {fileID: 3087166198646388486}
+  m_Layer: 5
+  m_Name: Text
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4345545755494972119
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5964666667873660501}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 2782570302269490679}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &2583986034352529907
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5964666667873660501}
+  m_CullTransparentMesh: 1
+--- !u!114 &6769026385614052745
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5964666667873660501}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.7137255, g: 0.3529412, b: 0, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: 1ad2cf6c2f09744489d8c60b3fe3bab2, type: 3}
+    m_FontSize: 24
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u91CD\u8BD5"
+--- !u!114 &3087166198646388486
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5964666667873660501}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0f4efe98aab6c6b41a7ee1f4c49df27b, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  textKey: home_loginAuthRetryBtn
+  layoutRebuildObject: {fileID: 0}
+  languageFontSizes: []

+ 2 - 0
Assets/BowArrow/Scripts/Components/TextAutoLanguage2/Resources/TextAutoLanguage2/cn.json

@@ -22,6 +22,8 @@
 
     "home_loginAuth": "正在认证登录。。。",
     "home_loginAuthRetry": "正在认证登录\n(网络出错,重试{0}次)",
+    "home_loginAuthFail": "网络异常,请稍后再试。",
+    "home_loginAuthRetryBtn": "重试",
 
     "me_email": "邮 箱 号 :",
     "me_email_placeholder": "点击绑定您的邮箱号",

+ 2 - 0
Assets/BowArrow/Scripts/Components/TextAutoLanguage2/Resources/TextAutoLanguage2/en.json

@@ -22,6 +22,8 @@
 
     "home_loginAuth": "Authenticating Login ...",
     "home_loginAuthRetry": "Authenticating Login\n(Network error, retry {0} time)",
+    "home_loginAuthFail": "The network is abnormal. Please try again later.",
+    "home_loginAuthRetryBtn": "Retry",
 
     "me_email": "Email :",
     "me_email_placeholder": "Click to bind your email number",

+ 16 - 4
Assets/BowArrow/Scripts/Network/UserPlayer.cs

@@ -88,6 +88,12 @@ public class UserPlayer : JCEntity
             handleAuthExpire();
         }
     }
+    public void RetryRequestUserInfoAvoidFail()
+    {
+        _hasExecuteRequestUserInfoAvoidFail = false;
+        _getUserInfoRetryCount = -1;
+        JCUnityLib.CoroutineStarter.Start(RequestUserInfoAvoidFail());
+    }
     //获取用户信息,超时了就重试
     private bool _hasExecuteRequestUserInfoAvoidFail = false;
     private int _getUserInfoRetryCount = -1;
@@ -96,11 +102,17 @@ public class UserPlayer : JCEntity
         if (_hasExecuteRequestUserInfoAvoidFail) yield break;
         _hasExecuteRequestUserInfoAvoidFail = true;
         while (!_hasGetUserInfo && ins == this) {
-            UserComp.Instance.getUserInfo(DoAfterGetUserInfo);
-            if (++_getUserInfoRetryCount > 0)
-                AuthLoginMask.ins?.SetRetryCount(_getUserInfoRetryCount); 
-            yield return new WaitForSeconds(3.3f);
+            if (++_getUserInfoRetryCount <= 3) {
+                UserComp.Instance.getUserInfo(DoAfterGetUserInfo);
+                if (_getUserInfoRetryCount > 0) 
+                    AuthLoginMask.ins?.SetRetryCount(_getUserInfoRetryCount); 
+                yield return new WaitForSeconds(3.3f);
+            } else {
+                AuthLoginMask.ins?.SetAutoRetryFail();
+                yield break;
+            }
         }
+        Debug.Log("out");
     }
     private bool _hasGetUserInfo = false;
     private void DoAfterGetUserInfo(UserInfo userInfo)