| | |
| | | using System.Collections; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using UnityEngine; |
| | | using System.IO; |
| | |
| | | { |
| | | bool firstLaunch = false; |
| | | |
| | | private bool doneInBegin = true; |
| | | |
| | | public override void Begin() |
| | | { |
| | | PriorLanguageConfig.LazyInitAsync().Forget(); |
| | | InitialFunctionConfig.LazyInitAsync().Forget(); |
| | | |
| | | duration = Mathf.Max(0.2f, expectTime); //非安卓平台的时间,安卓由sdk拷贝完成回调 |
| | | |
| | | if (Application.isEditor) |
| | | { |
| | | EditorCopyAsset(); |
| | | } |
| | | else if (Application.platform == RuntimePlatform.WebGLPlayer) |
| | | { |
| | | // WebGL平台无需拷贝文件,直接跳过 |
| | | } |
| | | else |
| | | { |
| | | //安卓每次由sdk回调拷贝成功,其他平台由unity自己存储标记 |
| | | switch (Application.platform) |
| | | { |
| | | case RuntimePlatform.Android: |
| | |
| | | |
| | | if (!firstLaunch) |
| | | { |
| | | //LoadInitalConfig().Forget(); |
| | | done = true; |
| | | doneInBegin = true; |
| | | } |
| | | } |
| | | |
| | | |
| | | //应该是下载最新的表格后再次加载 非拷贝 |
| | | //protected async UniTask LoadInitalConfig() |
| | |
| | | // done = true; |
| | | //} |
| | | |
| | | public override void End() |
| | | public override async void End() |
| | | { |
| | | if (AssetSource.isUseAssetBundle) |
| | | { |
| | | AssetBundleUtility.Instance.InitBuiltInAsset(); |
| | | { |
| | | // YooAsset 已在 Launch 阶段初始化内置资源,不再需要 AssetBundleUtility.InitBuiltInAsset() |
| | | // YooAssetInitializer.Instance.DefaultPackage 已包含内置资源 |
| | | |
| | | await LaunchInHot.Instance.InitSystemMgr(); |
| | | |
| | | // 这里还没开始加载配置 但是提前加载了供LaunchWin使用 |
| | | |
| | | |
| | | UIManager.Instance.OpenWindowAsync<LaunchWin>().Forget(); |
| | | } |
| | | |
| | | // ConfigInitiator.SyncInit(); |
| | | UIManager.Instance.CloseWindow<DownLoadWin>(); |
| | | UIManager.Instance.CloseWindow<VersionUpdateWin>(); |
| | | Language.InitDefaultLanguage(); |
| | | OperationLogCollect.Instance.RecordLauchEvent(8); |
| | | } |
| | | |
| | | public override void Update() |
| | |
| | | { |
| | | return; |
| | | } |
| | | |
| | | if (!(PriorLanguageConfig.isInit && InitialFunctionConfig.isInit)) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | if (doneInBegin) |
| | | { |
| | | done = true; |
| | | return; |
| | | } |
| | | |
| | | if (!Application.isEditor) |
| | | { |
| | | //安卓每次由sdk回调拷贝成功,其他平台由unity自己存储标记 |
| | |
| | | { |
| | | if (!SDKUtils.Instance.AssetCopyFinished) |
| | | { |
| | | //每次由sdk回调拷贝成功 |
| | | firstLaunch = true; |
| | | UnityEngine.Debug.Log("开始拷贝builtin资源"); |
| | | SDKUtils.Instance.CopyAsset(1); |
| | | //ynmbxxjUtil.Instance.CopyOneAsset("builtin_assetbundle"); |
| | | //ynmbxxjUtil.Instance.CopyOneAsset("builtin_assetbundle.manifest"); |
| | | //ynmbxxjUtil.Instance.CopyOneAsset("builtin/musics"); |
| | | //ynmbxxjUtil.Instance.CopyOneAsset("builtin/musics.manifest"); |
| | | //ynmbxxjUtil.Instance.CopyOneAsset("builtin/prefabs"); |
| | | //ynmbxxjUtil.Instance.CopyOneAsset("builtin/prefabs.manifest"); |
| | | //ynmbxxjUtil.Instance.CopyOneAsset("builtin/sprites"); |
| | | //ynmbxxjUtil.Instance.CopyOneAsset("builtin/sprites.manifest"); |
| | | //ynmbxxjUtil.Instance.CopyOneAsset("builtin/animationclips"); |
| | | //ynmbxxjUtil.Instance.CopyOneAsset("builtin/animationclips.manifest"); |
| | | //ynmbxxjUtil.Instance.CopyOneAsset("builtin/materials"); |
| | | //ynmbxxjUtil.Instance.CopyOneAsset("builtin/materials.manifest"); |
| | | //ynmbxxjUtil.Instance.CopyOneAsset("builtin/scriptableobjects"); |
| | | //ynmbxxjUtil.Instance.CopyOneAsset("builtin/scriptableobjects.manifest"); |
| | | |
| | | //ynmbxxjUtil.Instance.CopyOneAsset("builtin/font"); |
| | | //ynmbxxjUtil.Instance.CopyOneAsset("builtin/font.manifest"); |
| | | |
| | | //foreach (var config in ConfigInitiator.builtinConfig) |
| | | //{ |
| | | // ynmbxxjUtil.Instance.CopyOneAsset("config/" + config); |
| | | //} |
| | | |
| | | //AssetDeCompressTask.Decompress(ResourcesPath.Instance.ExternalStorePath); |
| | | //LocalSave.SetString("BuiltInAssetCopyCompleted_Android", VersionConfig.Get().version); |
| | | } |
| | | else |
| | | { |
| | | UnityEngine.Debug.Log("builtin资源已经拷贝过了"); |
| | | } |
| | | } |
| | | |
| | | private void IosCopyAsset() |
| | | private async void IosCopyAsset() |
| | | { |
| | | if (!VersionUtility.Instance.InIosAuditTime()) |
| | | if (!await VersionUtility.Instance.InIosAuditTime()) |
| | | { |
| | | if (!SDKUtils.builtinAssetCopyFinished) |
| | | { |
| | |
| | | |
| | | var fileNames = new List<string>(); |
| | | //var files = new List<FileInfo>(); |
| | | //FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, "builtin"), files); |
| | | //FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(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(StringUtility.Concat("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); |
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(ResourcesPath.Instance.StreamingAssetPath, "config"), configFiles); |
| | | foreach (var file in configFiles) |
| | | { |
| | | var name = Path.GetFileName(file.FullName); |
| | | fileNames.Add(StringUtility.Contact("config", Path.DirectorySeparatorChar, name)); |
| | | fileNames.Add(StringUtility.Concat("config", Path.DirectorySeparatorChar.ToString(), name)); |
| | | } |
| | | |
| | | foreach (var item in fileNames) |
| | | { |
| | | var fromPath = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, item); |
| | | var toPath = StringUtility.Contact(targetDirectory, item); |
| | | var fromPath = StringUtility.Concat(ResourcesPath.Instance.StreamingAssetPath, item); |
| | | var toPath = StringUtility.Concat(targetDirectory, item); |
| | | |
| | | var destDirectoryName = Path.GetDirectoryName(toPath); |
| | | if (!Directory.Exists(destDirectoryName)) |
| | |
| | | File.Copy(fromPath, toPath, true); |
| | | } |
| | | |
| | | LocalSave.SetString("BuiltInAssetCopyCompleted_IOSorStandalone", VersionConfig.Get().version); |
| | | VersionConfig.GetAsync().ContinueWith(config => |
| | | { |
| | | LocalSave.SetString("BuiltInAssetCopyCompleted_IOSorStandalone", config.version); |
| | | }).Forget(); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | 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); |
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(ResourcesPath.Instance.StreamingAssetPath, "config"), configFiles); |
| | | foreach (var file in configFiles) |
| | | { |
| | | var name = Path.GetFileName(file.FullName); |
| | | fileNames.Add(StringUtility.Contact("config", Path.DirectorySeparatorChar, name)); |
| | | fileNames.Add(StringUtility.Concat("config", Path.DirectorySeparatorChar.ToString(), name)); |
| | | } |
| | | |
| | | foreach (var item in fileNames) |
| | | { |
| | | var fromPath = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, item); |
| | | var toPath = StringUtility.Contact(targetDirectory, item); |
| | | var fromPath = StringUtility.Concat(ResourcesPath.Instance.StreamingAssetPath, item); |
| | | var toPath = StringUtility.Concat(targetDirectory, item); |
| | | |
| | | if (File.Exists(toPath)) |
| | | { |
| | |
| | | |
| | | private void EditorCopyAsset() |
| | | { |
| | | if (AssetSource.isUseAssetBundle) |
| | | { |
| | | FileExtersion.DirectoryCopy(ResourcesPath.CONFIG_FODLER, ResourcesPath.Instance.StreamingAssetPath + "config"); |
| | | FileExtersion.DirectoryCopy(ResourcesPath.ResourcesOutPath + "BuiltIn", ResourcesPath.Instance.StreamingAssetPath + "builtin"); |
| | | } |
| | | // if (AssetSource.isUseAssetBundle) |
| | | // { |
| | | // FileExtersion.DirectoryCopy(ResourcesPath.CONFIG_FODLER, ResourcesPath.Instance.StreamingAssetPath + "config"); |
| | | // FileExtersion.DirectoryCopy(ResourcesPath.ResourcesOutPath + "BuiltIn", ResourcesPath.Instance.StreamingAssetPath + "builtin"); |
| | | // } |
| | | } |
| | | |
| | | } |