From e1a9ed955b247e4cc4615e8700b0ea34d7683224 Mon Sep 17 00:00:00 2001
From: liuzhiwei <liuzhiwei@qq.com>
Date: Tue, 15 Dec 2020 17:19:48 +0800
Subject: [PATCH] Merge branch 'master' of http://172.16.1.52:8090/r/GemBattle into master

---
 Assets/Scripts/GameAnalytics_SDK/UI/LoginUI.cs |  165 +++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 125 insertions(+), 40 deletions(-)

diff --git a/Assets/Scripts/GameAnalytics_SDK/UI/LoginUI.cs b/Assets/Scripts/GameAnalytics_SDK/UI/LoginUI.cs
index add4710..523e847 100644
--- a/Assets/Scripts/GameAnalytics_SDK/UI/LoginUI.cs
+++ b/Assets/Scripts/GameAnalytics_SDK/UI/LoginUI.cs
@@ -8,35 +8,45 @@
 using UnityEngine.Networking;
 using Protobuf;
 using Google.Protobuf;
+using DG.Tweening;
 
 public class LoginUI : MonoBehaviour
 {
     bool isLogining;
     private JsonData loginData;
 
-    private Button repairBtn;//修复
-    private Button noticeBtn;//公告
+    //private Button repairBtn;//修复
+    //private Button noticeBtn;//公告
     private Button startBtn;//开始游戏
     private Slider progressSlider;//进度条
 
     private Text versionTxt;//版本号
     private Text resVersion;//资源版本号
+    float waitTime;//切换场景等待时间
 
+    [SerializeField]
+    private Sprite nextSprite;
+
+    [SerializeField]
+    private Image bg;
+
+    [SerializeField]
+    private List<GameObject> other;
 
     // Start is called before the first frame update
     void Start()
     {
+        AudioSourceManager.Ins.Play(AudioEnum.BGM1);
 
         EventCenter.Ins.RemoveAllListener();
+        TDAA_SDKManager.Ins.AddListener();
 
         isLogining = false;
 
-        repairBtn = transform.Find("Panel/RepairBtn").GetComponent<Button>();
-        noticeBtn = transform.Find("Panel/NoticeBtn").GetComponent<Button>();
+        //repairBtn = transform.Find("Panel/RepairBtn").GetComponent<Button>();
         startBtn = transform.Find("Panel/StartBtn").GetComponent<Button>();
 
         versionTxt = transform.Find("Panel/Version").GetComponent<Text>();
-        resVersion = transform.Find("Panel/ResVersion").GetComponent<Text>();
 
         progressSlider = transform.Find("Panel/Progress").GetComponent<Slider>();
         progressSlider.value = 0;
@@ -45,56 +55,101 @@
         startBtn.onClick.AddListener(OnClickLoginBtn);
         startBtn.gameObject.SetActive(true);
 
-        repairBtn.onClick.AddListener(() =>
-        {
-            OnClickResetBtn();
-        });
+        // repairBtn.onClick.AddListener(() =>
+        // {
+        //     OnClickResetBtn();
+        // });
 
         //transform.Find("Panel/Button (1)").GetComponent<Button>().onClick.AddListener(OnClickResetBtn);
 
-        if (Application.platform == RuntimePlatform.Android)
+        if (!GameConfig.useSDK)
         {
-            //GetetDeviceIMEI();//获取安卓手机IMEI
-            imei0 = TDAA_SDKManager.Ins.GetDeviceId();//使用设备ID
-        }
-        else if (Application.platform == RuntimePlatform.WindowsEditor)
-        {
-            imei0 = "MyTestGemBattle123";
+            if (Application.platform == RuntimePlatform.Android)
+            {
+                //GetetDeviceIMEI();//获取安卓手机IMEI
+                imei0 = TDAA_SDKManager.Ins.GetDeviceId();//使用设备ID
+            }
+            else if (Application.platform == RuntimePlatform.WindowsEditor)
+            {
+                imei0 = "MyTestGemBattle123";
+            }
+
+            GameConfig.Imei = 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;
+            Debug.Log("初始化TDAA_SDKManager");
             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);
+        if (GameConfig.GameCompletedCount > 0)
+        {
+            for (int i = 0; i < other.Count; ++i)
+            {
+                other[i].SetActive(false);
+            }
+            bg.sprite = nextSprite;
+            bg.SetNativeSize();
+        }
+    }
 
-    // }
+    /// <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());
+    }
+
+    /// <summary>
+    /// 使用SDK登录
+    /// </summary>
+    void SDKloginNext()
+    {
+        GameConfig.Imei = SDKManager.ins.sdk.uid;
+        Debug.Log("SDK登录,修改Imei:" + GameConfig.Imei);
+        transform.Find("Panel/PlayerID").GetComponent<Text>().text = "玩家ID:" + GameConfig.Imei;
+
+        loginNext();
+    }
+
 
     #region 获得安卓手机上的IMEI号
     public string imei0 = "";
     public string imei1 = "";
     public string meid = "";
 
+    /// <summary>
+    /// 已弃用
+    /// </summary>
     void GetetDeviceIMEI()
     {
         var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
@@ -111,9 +166,12 @@
 
     private void OnClickResetBtn()
     {
-        Debug.LogError("清空了所有数据");
-        PlayerPrefs.DeleteAll();
-        TDAA_SDKManager.Ins.Reset();
+        if (!GameConfig.useSDK)
+        {
+            Debug.LogError("清空了所有数据");
+            PlayerPrefs.DeleteAll();
+            TDAA_SDKManager.Ins.Reset();
+        }
     }
 
 
@@ -121,14 +179,36 @@
     {
         if (!isLogining)
         {
-            progressSlider.gameObject.SetActive(true);
-            startBtn.gameObject.SetActive(false);
+            isLogining = true;
+            if (GameConfig.isFirstStart)
+            {
+                // CoderM: 在这里要使用SDK来进行登录了
+                if (GameConfig.useSDK)
+                {
+                    Debug.Log("使用SDK来进行登录了");
+                    //设置login的回调
+                    SDKCallBack.ins.setNextAction("login", SDKloginNext);
+                    SDKManager.ins.sdk.login();
+                }
+                else
+                {
+                    Debug.Log("没有使用SDK");
 
-            AudioSourceManager.Ins.Play(AudioEnum.UI);
-            TDAA_SDKManager.Ins.Statistics(2);//埋点
+                    //没有使用SDK
+                    loginNext();
+                }
+            }
+            else
+            {
+                Debug.Log("重玩");
+                progressSlider.gameObject.SetActive(true);
+                startBtn.gameObject.SetActive(false);
 
-            GameConfig.isFirstStart = false;
-            StartCoroutine(loginMy());
+                AudioSourceManager.Ins.Play(AudioEnum.UI);
+                TDAA_SDKManager.Ins.OnClickRestartBtn();//重玩
+                StartCoroutine(loginMy());
+            }
+
         }
         else
         {
@@ -138,6 +218,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