using System.Collections; using System.Collections.Generic; using DG.Tweening; using UnityEngine; using UnityEngine.UI; using GameLogic; using System.IO; /// /// 游戏启动驱动 /// public class GameStart : MonoBehaviour { private AssetBundle bundle; void Start() { // 判断是否是覆盖安装了包,是就清除缓存 ClearCach(); // 开始启动游戏 if (Application.isEditor && AppConst.bundleMode && AppConst.isUpdate) { if (!System.IO.Directory.Exists(Util.AppContentPath())) { XDebug.Log.error("还未打包平台资源,移放到StreamAssets目录"); return; } } if (Application.isEditor) { StartCoroutine(StartGame()); //playSplash(); } else { if (AppConst.bundleMode) //先走闪屏流程 { if (AppConst.isSDKLogin && !SDK.SDKManager.Instance.IsInit) //当登录sdk时,等待初始化完成后再走闪屏流程 { SDK.SDKManager.Instance.Initialize(); SDK.SDKManager.Instance.onInitLaunchCallback += s => { playSplash(); }; } else { playSplash(); } } } } //请本地缓存 void ClearCach() { int localCode = PlayerPrefs.GetInt("SDKVersionCode", -1); int code = localCode; if (AppConst.isSDK) { code = AndroidDeviceInfo.Instance.GetVersionCode(); } #if !UNITY_EDITOR if (code != localCode) { string RootPath = AppConst.PersistentDataPath; string path = RootPath.Substring(0, RootPath.Length - 1); if (Directory.Exists(path)) { Directory.Delete(path, true); } Directory.CreateDirectory(path); PlayerPrefs.SetInt("SDKVersionCode", code); } #endif } void playSplash() { bool isShowSplash = true; if (isShowSplash) { #if UNITY_IOS string splashFilePath = "lz4_splashpanel.unity3d"; #else string splashFilePath = "lz4/splashpanel.unity3d"; #endif string path = AppConst.PersistentDataPath + splashFilePath; if (!File.Exists(path)) { path = AppConst.StreamPath + splashFilePath; } bundle = MEncyptUtil.LoadAssetBundle(path, AppConst.EncyptKey, AppConst.EncyptBytesLength); GameObject gameObj = bundle.LoadAsset("SplashPanel"); GameObject gameObj2 = Instantiate(gameObj, Vector3.zero, Quaternion.identity); Image image = gameObj2.transform.Find("Canvas/image").GetComponent(); image.transform.localScale = Vector3.one * 0.9f; //Image image2 = gameObj2.transform.Find("Canvas/image2").GetComponent(); //image2.gameObject.SetActive(false); //image2.DOFade(1, 0).OnComplete(() => { // image2.DOFade(0, 0).SetDelay(0).OnComplete(() => { image.color = new Color(image.color.r, image.color.g, image.color.b, 0); image.DOFade(1, 1).OnComplete(() => { image.DOFade(0, 1).SetDelay(2).OnComplete(() => { DestroyImmediate(gameObj2); if (bundle != null) bundle.Unload(true); bundle = null; StartCoroutine(StartGame()); //StartCoroutine(playMovice()); }); }); // }); //}); } else { StartCoroutine(StartGame()); } } IEnumerator StartGame() { yield return App.Instance.Initialize(); // 初始化数数 App.TAMgr.Init(); //App.Instance.Initialize(); UpdateManager.Instance.StartUp(); } //IEnumerator playMovice() //{ // Handheld.PlayFullScreenMovie("PV_v5_0521_1.mp4", Color.black, FullScreenMovieControlMode.CancelOnInput); // yield return new WaitForEndOfFrame(); // App.Instance.Initialize(); // UpdateManager.Instance.StartUp(); //} }