From 6f40c69336d4dc61567d58880a2bb4952d69be95 Mon Sep 17 00:00:00 2001
From: wangguan <wangguan@kt007.com>
Date: Mon, 14 Dec 2020 20:07:13 +0800
Subject: [PATCH] 初始化TDAA_SDKManager

---
 Assets/Scripts/GameAnalytics_SDK/UI/LoginUI.cs |  162 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 128 insertions(+), 34 deletions(-)

diff --git a/Assets/Scripts/GameAnalytics_SDK/UI/LoginUI.cs b/Assets/Scripts/GameAnalytics_SDK/UI/LoginUI.cs
index 9e1bd6e..8812bd6 100644
--- a/Assets/Scripts/GameAnalytics_SDK/UI/LoginUI.cs
+++ b/Assets/Scripts/GameAnalytics_SDK/UI/LoginUI.cs
@@ -8,10 +8,10 @@
 using UnityEngine.Networking;
 using Protobuf;
 using Google.Protobuf;
+using DG.Tweening;
 
 public class LoginUI : MonoBehaviour
 {
-    private AsyncOperation async = null;
     bool isLogining;
     private JsonData loginData;
 
@@ -22,20 +22,29 @@
 
     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();
 
         isLogining = false;
 
         repairBtn = transform.Find("Panel/RepairBtn").GetComponent<Button>();
-        noticeBtn = transform.Find("Panel/NoticeBtn").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;
@@ -44,47 +53,101 @@
         startBtn.onClick.AddListener(OnClickLoginBtn);
         startBtn.gameObject.SetActive(true);
 
+        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()
+    {
+        Debug.Log("SDK登录,修改Imei");
+        GameConfig.Imei = SDKManager.ins.sdk.uid;
+        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");
@@ -101,9 +164,12 @@
 
     private void OnClickResetBtn()
     {
-        Debug.LogError("清空了所有数据");
-        PlayerPrefs.DeleteAll();
-        TDAA_SDKManager.Ins.Reset();
+        if (!GameConfig.useSDK)
+        {
+            Debug.LogError("清空了所有数据");
+            PlayerPrefs.DeleteAll();
+            TDAA_SDKManager.Ins.Reset();
+        }
     }
 
 
@@ -111,14 +177,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
         {
@@ -128,9 +216,15 @@
 
     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(GameConfig.NextSceneName);
+        AsyncOperation op = SceneManager.LoadSceneAsync("Endless2D");
+        // AsyncOperation op = SceneManager.LoadSceneAsync(GameConfig.NextSceneName);
         op.allowSceneActivation = false;
         while (op.progress < 0.9f) //此处如果是 <= 0.9f 则会出现死循环所以必须小0.9
         {

--
Gitblit v1.9.1