From f453404715d4e4951d46856578de068b75fe0f34 Mon Sep 17 00:00:00 2001
From: chenxin <chenxin6991@163.com>
Date: Fri, 11 Dec 2020 20:20:42 +0800
Subject: [PATCH] Merge commit '4b116e3d552fd8b317be611cd7aee2c091317d9f' into master

---
 Assets/Scripts/GameAnalytics_SDK/UI/LoginUI.cs |   87 +++++++++++++++++++++++++++++++------------
 1 files changed, 63 insertions(+), 24 deletions(-)

diff --git a/Assets/Scripts/GameAnalytics_SDK/UI/LoginUI.cs b/Assets/Scripts/GameAnalytics_SDK/UI/LoginUI.cs
index add4710..4a574c7 100644
--- a/Assets/Scripts/GameAnalytics_SDK/UI/LoginUI.cs
+++ b/Assets/Scripts/GameAnalytics_SDK/UI/LoginUI.cs
@@ -8,6 +8,7 @@
 using UnityEngine.Networking;
 using Protobuf;
 using Google.Protobuf;
+using DG.Tweening;
 
 public class LoginUI : MonoBehaviour
 {
@@ -21,12 +22,15 @@
 
     private Text versionTxt;//版本号
     private Text resVersion;//资源版本号
+    float waitTime;//切换场景等待时间
 
+    [SerializeField]
+    private Sprite nextSprite;
 
     // Start is called before the first frame update
     void Start()
     {
-
+        AudioSourceManager.Ins.Play(AudioEnum.BGM1);
         EventCenter.Ins.RemoveAllListener();
 
         isLogining = false;
@@ -52,6 +56,7 @@
 
         //transform.Find("Panel/Button (1)").GetComponent<Button>().onClick.AddListener(OnClickResetBtn);
 
+
         if (Application.platform == RuntimePlatform.Android)
         {
             //GetetDeviceIMEI();//获取安卓手机IMEI
@@ -62,39 +67,64 @@
             imei0 = "MyTestGemBattle123";
         }
 
+        GameConfig.PlayerName = imei0;
+
         versionTxt.text = "版本号:" + Application.version;
         //resVersion.text 暂时没有使用
         transform.Find("Panel/PlayerID").GetComponent<Text>().text = "玩家ID:" + imei0;
 
 
-        if (!GameConfig.isFirstStart)//后续直接加载
+        if (GameConfig.isFirstStart)
         {
-            OnClickLoginBtn();
-        }
-        else
-        {
+            waitTime = 0f;
             //第一次启动,初始化并且埋点
-            TDAA_SDKManager.Ins.SDKInit(ChannelID.Gm.ToString());
-            TDAA_SDKManager.Ins.Statistics(1);//成功加载登陆界面的人数
+            if (!GameConfig.useSDK)
+            {
+                TDAA_SDKManager.Ins.SDKInit(ChannelID.Gm.ToString());
+                TDAA_SDKManager.Ins.Statistics(1);//成功加载登陆界面的人数
+            }
         }
+
+        SetStart();
     }
 
-    // private void OnEnable()
-    // {
-    //     SocketEvent.Ins.Add<IMessage>((int)Opcode.LoginS2C, LoginS2C);
-    // }
+    /// <summary>
+    /// 设置开始状态
+    /// </summary>
+    private void SetStart()
+    {
+        startBtn.gameObject.SetActive(true);
+        int resId = Mathf.FloorToInt(Mathf.Clamp01(GameConfig.GameCompletedCount));
+        Image img = startBtn.transform.GetChild(0).GetComponent<Image>();
+        img.sprite = Resources.Load<Sprite>($"UI/Loading/{resId}");
+        img.SetNativeSize();
+    }
 
-    // private void OnDestroy()
-    // {
-    //     SocketEvent.Ins.Remove<IMessage>((int)Opcode.LoginS2C, LoginS2C);
+    /// <summary>
+    /// 开始游戏
+    /// </summary>
+    void loginNext()
+    {
+        progressSlider.gameObject.SetActive(true);
+        startBtn.gameObject.SetActive(false);
 
-    // }
+        AudioSourceManager.Ins.Play(AudioEnum.UI);
+        TDAA_SDKManager.Ins.Statistics(2);//埋点
+
+        GameConfig.isFirstStart = false;
+        StartCoroutine(loginMy());
+    }
+
+
 
     #region 获得安卓手机上的IMEI号
     public string imei0 = "";
     public string imei1 = "";
     public string meid = "";
 
+    /// <summary>
+    /// 已弃用
+    /// </summary>
     void GetetDeviceIMEI()
     {
         var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
@@ -121,14 +151,18 @@
     {
         if (!isLogining)
         {
-            progressSlider.gameObject.SetActive(true);
-            startBtn.gameObject.SetActive(false);
-
-            AudioSourceManager.Ins.Play(AudioEnum.UI);
-            TDAA_SDKManager.Ins.Statistics(2);//埋点
-
-            GameConfig.isFirstStart = false;
-            StartCoroutine(loginMy());
+            // CoderM: 在这里要使用SDK来进行登录了
+            if (GameConfig.useSDK)
+            {
+                //设置login的回调
+                SDKCallBack.ins.setNextAction("login", loginNext);
+                SDKManager.ins.sdk.login();
+            }
+            else
+            {
+                //没有使用SDK
+                loginNext();
+            }
         }
         else
         {
@@ -138,6 +172,11 @@
 
     IEnumerator loginMy()
     {
+        progressSlider.value = 0.0f;
+        System.GC.Collect();
+        DOTween.Clear();
+        Debug.Log("开始清理GC,清理DOTween");
+        yield return new WaitForSeconds(waitTime);
         int displayProgress = 0;
         int toProgress = 0;
         AsyncOperation op = SceneManager.LoadSceneAsync("Endless2D");

--
Gitblit v1.9.1