| | |
| | |
|
| | | public class Launch : MonoBehaviour
|
| | | {
|
| | | static LaunchStage m_CurrentStage = LaunchStage.None;
|
| | |
|
| | | static int step = 0;
|
| | | static LaunchStage m_CurrentStage = LaunchStage.None;
|
| | | public static ProgressInfo progressInfo { get; private set; }
|
| | |
|
| | | private void Awake()
|
| | | {
|
| | | ResourcesPath.Instance.Init();
|
| | | SnxxzGame.Instance.gameObject.name = "__SnxxzGame__";
|
| | |
|
| | |
|
| | | Screen.sleepTimeout = SleepTimeout.NeverSleep;
|
| | |
|
| | | SDKUtility.Instance.Init();
|
| | |
|
| | | #if UNITY_ANDROID && !UNITY_EDITOR
|
| | | if (!SDKUtility.builtinAssetCopyFinished)
|
| | | {
|
| | | SDKUtility.Instance.CopyOneAsset("builtin_assetbundle.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin_assetbundle.manifest.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/musics.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/musics.manifest.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/prefabs.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/prefabs.manifest.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/sprites.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/sprites.manifest.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/animationclips.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/animationclips.manifest.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/materials.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/materials.manifest.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/scriptableobjects.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/scriptableobjects.manifest.7z");
|
| | |
|
| | | SDKUtility.Instance.CopyOneAsset("config/Contact.txt.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("config/HelpInfo.txt.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("config/PriorBundle.txt.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("config/PriorLanguage.txt.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("config/ApkUpdateUrl.txt.7z");
|
| | |
|
| | | AssetDeCompressTask.Decompress(ResourcesPath.Instance.ExternalStorePath);
|
| | | LocalSave.SetString("BuiltInAssetCopyCompleted_Android", VersionConfig.Get().version);
|
| | | }
|
| | | #endif
|
| | |
|
| | | #if UNITY_IOS && !UNITY_EDITOR
|
| | | if (!VersionUtility.Instance.InIosAuditTime())
|
| | | {
|
| | | if (!SDKUtility.builtinAssetCopyFinished)
|
| | | {
|
| | | var targetDirectory = ResourcesPath.Instance.ExternalStorePath;
|
| | | if (!Directory.Exists(targetDirectory))
|
| | | {
|
| | | Directory.CreateDirectory(targetDirectory);
|
| | | }
|
| | |
|
| | | var fileNames = new List<string>();
|
| | | var files = new List<FileInfo>();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, "builtin"), files);
|
| | | foreach (var file in files)
|
| | | {
|
| | | var name = Path.GetFileName(file.FullName);
|
| | | fileNames.Add(StringUtility.Contact("builtin", Path.DirectorySeparatorChar, name));
|
| | | }
|
| | |
|
| | | fileNames.Add("builtin_assetbundle");
|
| | | fileNames.Add("builtin_assetbundle.manifest");
|
| | |
|
| | | var configFiles = new List<FileInfo>();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, "config"), configFiles);
|
| | | foreach (var file in configFiles)
|
| | | {
|
| | | var name = Path.GetFileName(file.FullName);
|
| | | fileNames.Add(StringUtility.Contact("config", Path.DirectorySeparatorChar, name));
|
| | | }
|
| | |
|
| | | foreach (var item in fileNames)
|
| | | {
|
| | | var fromPath = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, item);
|
| | | var toPath = StringUtility.Contact(targetDirectory, item);
|
| | |
|
| | | var destDirectoryName = Path.GetDirectoryName(toPath);
|
| | | if (!Directory.Exists(destDirectoryName))
|
| | | {
|
| | | Directory.CreateDirectory(destDirectoryName);
|
| | | }
|
| | |
|
| | | File.Copy(fromPath, toPath, true);
|
| | | }
|
| | |
|
| | | LocalSave.SetString("BuiltInAssetCopyCompleted_IOS", VersionConfig.Get().version);
|
| | | }
|
| | | }
|
| | | #endif
|
| | |
|
| | | if (!AssetSource.builtInFromEditor)
|
| | | {
|
| | | AssetBundleUtility.Instance.InitBuiltInAsset();
|
| | | }
|
| | |
|
| | | ShaderUtility.InitGlobalParams();
|
| | | SoundPlayer.CreateSoundPlayer();
|
| | |
|
| | | SystemSetting.Instance.SetSoundVolume(SystemSetting.Instance.GetSoundVolume());
|
| | | SystemSetting.Instance.SetSoundEffect(SystemSetting.Instance.GetSoundEffect());
|
| | | SystemSetting.Instance.SetGameFps(SystemSetting.Instance.GetGameFps());
|
| | |
|
| | | GameObjectPoolManager.Instance.gameObject.name = "GameObjectPool";
|
| | | GameObjectPoolManager.Instance.Initialize();
|
| | | ExceptionCatcher.Init();
|
| | | ExceptionCatcher.Catch();
|
| | | DebugUtility.Instance.Init();
|
| | | GlobalTimeEvent.Instance.Begin();
|
| | | }
|
| | |
|
| | | float timer = 0f;
|
| | |
|
| | | Queue<LaunchTask> tasks = new Queue<LaunchTask>();
|
| | | LaunchTask currentTask = null;
|
| | | bool launchComplete = false;
|
| | |
| | |
|
| | | void Start()
|
| | | {
|
| | | WindowCenter.Instance.DestoryWinsByStage(WindowCenter.WindowStage.Launch);
|
| | | AssetBundleUtility.Instance.UnloadAssetBundle("builtin/prefabs", true, false);
|
| | |
|
| | | Application.backgroundLoadingPriority = ThreadPriority.High;
|
| | | SoundPlayer.Instance.PlayLoginMusic();
|
| | | Config.Instance.PreLoadConfigs();
|
| | | SystemSetting.Instance.LetFPSUnLimit();
|
| | | Config.Instance.RegisterGlobalEvent();
|
| | | PackageRegedit.Init();
|
| | | DebugUtility.Instance.CreateDebugRoot();
|
| | | WindowCenter.Instance.OpenFromLocal<LaunchWin>();
|
| | | ResourcesPath.Instance.Init();
|
| | | SnxxzGame.Instance.gameObject.name = "__SnxxzGame__";
|
| | | Screen.sleepTimeout = SleepTimeout.NeverSleep;
|
| | | SDKUtility.Instance.Init();
|
| | |
|
| | | var builtInAssetCopyTask = new BuiltInAssetCopyTask();
|
| | | var initSettingTask = new InitSettingTask();
|
| | | var sdkInitedTask = new SDKInitedTask();
|
| | | var assetCopyTask = new AssetCopyTask();
|
| | | var assetDecompressTask = new AssetDecompressTask();
|
| | |
| | | var configInitTask = new ConfigInitTask();
|
| | | var launchFadeOutTask = new LaunchFadeOutTask();
|
| | |
|
| | | tasks.Enqueue(builtInAssetCopyTask);
|
| | | tasks.Enqueue(initSettingTask);
|
| | | #if !UNITY_EDITOR
|
| | | tasks.Enqueue(sdkInitedTask);
|
| | | #endif
|
| | |
| | |
|
| | | }
|
| | |
|
| | | public class BuiltInAssetCopyTask : LaunchTask
|
| | | {
|
| | | bool firstLaunch = false;
|
| | |
|
| | | public override void Begin()
|
| | | {
|
| | | duration = Mathf.Max(0.1f, expectTime);
|
| | |
|
| | | #if UNITY_ANDROID && !UNITY_EDITOR
|
| | | if (!SDKUtility.builtinAssetCopyFinished)
|
| | | {
|
| | | firstLaunch=true;
|
| | | SDKUtility.Instance.CopyOneAsset("builtin_assetbundle.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin_assetbundle.manifest.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/musics.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/musics.manifest.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/prefabs.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/prefabs.manifest.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/sprites.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/sprites.manifest.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/animationclips.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/animationclips.manifest.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/materials.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/materials.manifest.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/scriptableobjects.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("builtin/scriptableobjects.manifest.7z");
|
| | |
|
| | | SDKUtility.Instance.CopyOneAsset("config/Contact.txt.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("config/HelpInfo.txt.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("config/PriorBundle.txt.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("config/PriorLanguage.txt.7z");
|
| | | SDKUtility.Instance.CopyOneAsset("config/ApkUpdateUrl.txt.7z");
|
| | |
|
| | | AssetDeCompressTask.Decompress(ResourcesPath.Instance.ExternalStorePath);
|
| | | LocalSave.SetString("BuiltInAssetCopyCompleted_Android", VersionConfig.Get().version);
|
| | | }
|
| | | #endif
|
| | |
|
| | | #if UNITY_IOS && !UNITY_EDITOR
|
| | | if (!VersionUtility.Instance.InIosAuditTime())
|
| | | {
|
| | | if (!SDKUtility.builtinAssetCopyFinished)
|
| | | { |
| | | firstLaunch=true;
|
| | | var targetDirectory = ResourcesPath.Instance.ExternalStorePath;
|
| | | if (!Directory.Exists(targetDirectory))
|
| | | {
|
| | | Directory.CreateDirectory(targetDirectory);
|
| | | }
|
| | |
|
| | | var fileNames = new List<string>();
|
| | | var files = new List<FileInfo>();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, "builtin"), files);
|
| | | foreach (var file in files)
|
| | | {
|
| | | var name = Path.GetFileName(file.FullName);
|
| | | fileNames.Add(StringUtility.Contact("builtin", Path.DirectorySeparatorChar, name));
|
| | | }
|
| | |
|
| | | fileNames.Add("builtin_assetbundle");
|
| | | fileNames.Add("builtin_assetbundle.manifest");
|
| | |
|
| | | var configFiles = new List<FileInfo>();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, "config"), configFiles);
|
| | | foreach (var file in configFiles)
|
| | | {
|
| | | var name = Path.GetFileName(file.FullName);
|
| | | fileNames.Add(StringUtility.Contact("config", Path.DirectorySeparatorChar, name));
|
| | | }
|
| | |
|
| | | foreach (var item in fileNames)
|
| | | {
|
| | | var fromPath = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, item);
|
| | | var toPath = StringUtility.Contact(targetDirectory, item);
|
| | |
|
| | | var destDirectoryName = Path.GetDirectoryName(toPath);
|
| | | if (!Directory.Exists(destDirectoryName))
|
| | | {
|
| | | Directory.CreateDirectory(destDirectoryName);
|
| | | }
|
| | |
|
| | | File.Copy(fromPath, toPath, true);
|
| | | }
|
| | |
|
| | | LocalSave.SetString("BuiltInAssetCopyCompleted_IOS", VersionConfig.Get().version);
|
| | | }
|
| | | }
|
| | | #endif
|
| | |
|
| | | if (!firstLaunch)
|
| | | {
|
| | | done = true;
|
| | | }
|
| | | }
|
| | |
|
| | | public override void End()
|
| | | {
|
| | | if (!AssetSource.builtInFromEditor)
|
| | | {
|
| | | AssetBundleUtility.Instance.InitBuiltInAsset();
|
| | | }
|
| | |
|
| | | Config.Instance.RegisterGlobalEvent();
|
| | | Config.Instance.PreLoadConfigs();
|
| | | WindowCenter.Instance.DestoryWinsByStage(WindowCenter.WindowStage.Launch);
|
| | | AssetBundleUtility.Instance.UnloadAssetBundle("builtin/prefabs", true, false);
|
| | | WindowCenter.Instance.OpenFromLocal<LaunchWin>();
|
| | | }
|
| | |
|
| | | public override void Update()
|
| | | {
|
| | | if (done)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | if (timer > duration)
|
| | | {
|
| | | done = true;
|
| | | }
|
| | | else
|
| | | {
|
| | | done = false;
|
| | | progress = timer / duration;
|
| | | }
|
| | |
|
| | | timer += Time.deltaTime;
|
| | | }
|
| | | }
|
| | |
|
| | | public class InitSettingTask : LaunchTask
|
| | | {
|
| | | public override float expectTime {
|
| | | get { return LocalSave.GetFloat("InitSettingTask_ExpectTime", 1f); }
|
| | | protected set { LocalSave.SetFloat("InitSettingTask_ExpectTime", value); }
|
| | | }
|
| | |
|
| | | public override void Begin()
|
| | | {
|
| | | ShaderUtility.InitGlobalParams();
|
| | | SoundPlayer.CreateSoundPlayer();
|
| | |
|
| | | SystemSetting.Instance.SetSoundVolume(SystemSetting.Instance.GetSoundVolume());
|
| | | SystemSetting.Instance.SetSoundEffect(SystemSetting.Instance.GetSoundEffect());
|
| | | SystemSetting.Instance.SetGameFps(SystemSetting.Instance.GetGameFps());
|
| | |
|
| | | GameObjectPoolManager.Instance.gameObject.name = "GameObjectPool";
|
| | | GameObjectPoolManager.Instance.Initialize();
|
| | | ExceptionCatcher.Init();
|
| | | ExceptionCatcher.Catch();
|
| | | DebugUtility.Instance.Init();
|
| | | GlobalTimeEvent.Instance.Begin();
|
| | |
|
| | | SoundPlayer.Instance.PlayLoginMusic();
|
| | | Config.Instance.PreLoadConfigs();
|
| | | SystemSetting.Instance.LetFPSUnLimit();
|
| | | Config.Instance.RegisterGlobalEvent();
|
| | | PackageRegedit.Init();
|
| | | DebugUtility.Instance.CreateDebugRoot();
|
| | |
|
| | | done = true;
|
| | | }
|
| | |
|
| | | public override void End()
|
| | | {
|
| | | expectTime = timer;
|
| | | }
|
| | |
|
| | | public override void Update()
|
| | | {
|
| | | timer += Time.deltaTime;
|
| | | }
|
| | | }
|
| | |
|
| | | public class SDKInitedTask : LaunchTask
|
| | | {
|
| | | public override float expectTime {
|