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