diff --git a/Assets/Resources/AssetBundleCollectorSetting.asset b/Assets/Resources/AssetBundleCollectorSetting.asset new file mode 100644 index 0000000..b4bd420 --- /dev/null +++ b/Assets/Resources/AssetBundleCollectorSetting.asset @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 185f6993d5150494d98da50e26cb1c25, type: 3} + m_Name: AssetBundleCollectorSetting + m_EditorClassIdentifier: + ShowPackageView: 1 + ShowEditorAlias: 0 + UniqueBundleName: 0 + Packages: + - PackageName: DefaultPackage + PackageDesc: + EnableAddressable: 0 + LocationToLower: 0 + IncludeAssetGUID: 0 + AutoCollectShaders: 1 + IgnoreRuleName: NormalIgnoreRule + Groups: + - GroupName: Prefab + GroupDesc: + AssetTags: + ActiveRuleName: EnableGroup + Collectors: + - CollectPath: Assets/Res/Prefab + CollectorGUID: 6c0b82f254d6f174cb22b578d79bf539 + CollectorType: 0 + AddressRuleName: AddressByFileName + PackRuleName: PackDirectory + FilterRuleName: CollectAll + AssetTags: + UserData: + - GroupName: Scene + GroupDesc: + AssetTags: + ActiveRuleName: EnableGroup + Collectors: + - CollectPath: Assets/Res/Scene + CollectorGUID: cc26c1ecf46a43647aab44e108ddf282 + CollectorType: 0 + AddressRuleName: AddressByFileName + PackRuleName: PackDirectory + FilterRuleName: CollectAll + AssetTags: + UserData: + - GroupName: Sprite + GroupDesc: + AssetTags: + ActiveRuleName: EnableGroup + Collectors: + - CollectPath: Assets/Res/Sprite + CollectorGUID: e09b6173f34194542b1f00496c15b774 + CollectorType: 0 + AddressRuleName: AddressByFileName + PackRuleName: PackDirectory + FilterRuleName: CollectAll + AssetTags: + UserData: + - GroupName: Texture + GroupDesc: + AssetTags: + ActiveRuleName: EnableGroup + Collectors: + - CollectPath: Assets/Res/Texture + CollectorGUID: 4f9a35e77d653a24ebfa787b68b32642 + CollectorType: 0 + AddressRuleName: AddressByFileName + PackRuleName: PackDirectory + FilterRuleName: CollectAll + AssetTags: + UserData: diff --git a/Assets/Resources/AssetBundleCollectorSetting.asset.meta b/Assets/Resources/AssetBundleCollectorSetting.asset.meta new file mode 100644 index 0000000..10da21a --- /dev/null +++ b/Assets/Resources/AssetBundleCollectorSetting.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dc6b387f5301cbf47bec70f5167d0856 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/YooAssetSettings.asset b/Assets/Resources/YooAssetSettings.asset new file mode 100644 index 0000000..6572506 --- /dev/null +++ b/Assets/Resources/YooAssetSettings.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5bd1afdce9715f84eb4cbc901922afc2, type: 3} + m_Name: YooAssetSettings + m_EditorClassIdentifier: + DefaultYooFolderName: yoo + PackageManifestPrefix: diff --git a/Assets/Resources/YooAssetSettings.asset.meta b/Assets/Resources/YooAssetSettings.asset.meta new file mode 100644 index 0000000..b73a32f --- /dev/null +++ b/Assets/Resources/YooAssetSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 35ccac627b6aa5a4ab29461912950089 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Init.cs b/Assets/Scripts/Init.cs index 13aa2d2..1d73a3b 100644 --- a/Assets/Scripts/Init.cs +++ b/Assets/Scripts/Init.cs @@ -1,5 +1,6 @@ using System; using System.Collections; +// using UniFramework.Event; using UnityEngine; using YooAsset; @@ -9,6 +10,7 @@ public class Init : MonoBehaviour /// 资源系统运行模式 /// public EPlayMode PlayMode = EPlayMode.EditorSimulateMode; + public string PackageName = "DefaultPackage"; public string SceneName; @@ -22,6 +24,12 @@ public class Init : MonoBehaviour IEnumerator Start() { + // 游戏管理器 + // GameManager.Instance.Behaviour = this; + // + // // 初始化事件系统 + // UniEvent.Initalize(); + // 初始化资源系统 YooAssets.Initialize(); @@ -29,14 +37,18 @@ public class Init : MonoBehaviour var go = Resources.Load("PatchWindow"); GameObject.Instantiate(go); - yield return StartCoroutine(InitPackage()); + // 开始补丁更新流程 + // var operation = new PatchOperation("DefaultPackage", PlayMode); + // YooAssets.StartOperation(operation); + yield return InitPackage(); // 设置默认的资源包 - var gamePackage = YooAssets.GetPackage(PackageName); + var gamePackage = YooAssets.GetPackage("DefaultPackage"); YooAssets.SetDefaultPackage(gamePackage); - yield return new WaitForSeconds(1); // 切换到主页面场景 + // SceneEventDefine.ChangeToHomeScene.SendEventMessage(); + YooAssets.LoadSceneSync(SceneName); } private void Update() @@ -48,9 +60,10 @@ public class Init : MonoBehaviour } + #region FsmInitializePackage + private IEnumerator InitPackage() { - // 创建资源包裹类 var package = YooAssets.TryGetPackage(PackageName); if (package == null) @@ -63,7 +76,8 @@ public class Init : MonoBehaviour var buildResult = EditorSimulateModeHelper.SimulateBuild(PackageName); var packageRoot = buildResult.PackageRootDirectory; var createParameters = new EditorSimulateModeParameters(); - createParameters.EditorFileSystemParameters = FileSystemParameters.CreateDefaultEditorFileSystemParameters(packageRoot); + createParameters.EditorFileSystemParameters = + FileSystemParameters.CreateDefaultEditorFileSystemParameters(packageRoot); initializationOperation = package.InitializeAsync(createParameters); } @@ -71,7 +85,8 @@ public class Init : MonoBehaviour if (PlayMode == EPlayMode.OfflinePlayMode) { var createParameters = new OfflinePlayModeParameters(); - createParameters.BuildinFileSystemParameters = FileSystemParameters.CreateDefaultBuildinFileSystemParameters(); + createParameters.BuildinFileSystemParameters = + FileSystemParameters.CreateDefaultBuildinFileSystemParameters(); initializationOperation = package.InitializeAsync(createParameters); } @@ -82,8 +97,10 @@ public class Init : MonoBehaviour string fallbackHostServer = GetHostServerURL(); IRemoteServices remoteServices = new RemoteServices(defaultHostServer, fallbackHostServer); var createParameters = new HostPlayModeParameters(); - createParameters.BuildinFileSystemParameters = FileSystemParameters.CreateDefaultBuildinFileSystemParameters(); - createParameters.CacheFileSystemParameters = FileSystemParameters.CreateDefaultCacheFileSystemParameters(remoteServices); + createParameters.BuildinFileSystemParameters = + FileSystemParameters.CreateDefaultBuildinFileSystemParameters(); + createParameters.CacheFileSystemParameters = + FileSystemParameters.CreateDefaultCacheFileSystemParameters(remoteServices); initializationOperation = package.InitializeAsync(createParameters); } @@ -96,11 +113,13 @@ public class Init : MonoBehaviour string fallbackHostServer = GetHostServerURL(); string packageRoot = $"{WeChatWASM.WX.env.USER_DATA_PATH}/__GAME_FILE_CACHE"; //注意:如果有子目录,请修改此处! IRemoteServices remoteServices = new RemoteServices(defaultHostServer, fallbackHostServer); - createParameters.WebServerFileSystemParameters = WechatFileSystemCreater.CreateFileSystemParameters(packageRoot, remoteServices); + createParameters.WebServerFileSystemParameters = + WechatFileSystemCreater.CreateFileSystemParameters(packageRoot, remoteServices); initializationOperation = package.InitializeAsync(createParameters); #else var createParameters = new WebPlayModeParameters(); - createParameters.WebServerFileSystemParameters = FileSystemParameters.CreateDefaultWebServerFileSystemParameters(); + createParameters.WebServerFileSystemParameters = + FileSystemParameters.CreateDefaultWebServerFileSystemParameters(); initializationOperation = package.InitializeAsync(createParameters); #endif } @@ -110,23 +129,13 @@ public class Init : MonoBehaviour // 如果初始化失败弹出提示界面 if (initializationOperation.Status != EOperationStatus.Succeed) { - Debug.LogError($"{initializationOperation.Error}"); + Debug.LogWarning($"{initializationOperation.Error}"); + // PatchEventDefine.InitializeFailed.SendEventMessage(); } else { - // 2. 请求资源清单的版本信息 - var operation =package.RequestPackageVersionAsync(); - yield return operation; - if (operation.Status != EOperationStatus.Succeed) - yield break; - - // 3. 传入的版本信息更新资源清单 - var packageVersion = package.GetPackageVersion(); - var operation1 =package.UpdatePackageManifestAsync(packageVersion); - yield return operation1; - if (operation1.Status != EOperationStatus.Succeed) - yield break; - Debug.Log("init finish"); + // _machine.ChangeState(); + yield return StartCoroutine(UpdatePackageVersion()); } } @@ -173,13 +182,64 @@ public class Init : MonoBehaviour _defaultHostServer = defaultHostServer; _fallbackHostServer = fallbackHostServer; } + string IRemoteServices.GetRemoteMainURL(string fileName) { return $"{_defaultHostServer}/{fileName}"; } + string IRemoteServices.GetRemoteFallbackURL(string fileName) { return $"{_fallbackHostServer}/{fileName}"; } } + + #endregion + + #region FsmRequestPackageVersion + + private IEnumerator UpdatePackageVersion() + { + var package = YooAssets.GetPackage(PackageName); + var operation = package.RequestPackageVersionAsync(); + yield return operation; + + if (operation.Status != EOperationStatus.Succeed) + { + Debug.LogWarning(operation.Error); + // PatchEventDefine.PackageVersionRequestFailed.SendEventMessage(); + } + else + { + Debug.Log($"Request package version : {operation.PackageVersion}"); + // _machine.SetBlackboardValue("PackageVersion", operation.PackageVersion); + // _machine.ChangeState(); + packageVersion = operation.PackageVersion; + yield return StartCoroutine(UpdateManifest()); + } + } +string packageVersion; + #endregion + + #region FsmUpdatePackageManifest + + private IEnumerator UpdateManifest() + { + var package = YooAssets.GetPackage(PackageName); + var operation = package.UpdatePackageManifestAsync(packageVersion); + yield return operation; + + if (operation.Status != EOperationStatus.Succeed) + { + Debug.LogWarning(operation.Error); + // PatchEventDefine.PackageManifestUpdateFailed.SendEventMessage(); + yield break; + } + else + { + // _machine.ChangeState(); + } + } + + #endregion } \ No newline at end of file diff --git a/Assets/StreamingAssets/yoo/DefaultPackage/BuildinCatalog.bytes b/Assets/StreamingAssets/yoo/DefaultPackage/BuildinCatalog.bytes index f1fd77b..4eda1ee 100644 Binary files a/Assets/StreamingAssets/yoo/DefaultPackage/BuildinCatalog.bytes and b/Assets/StreamingAssets/yoo/DefaultPackage/BuildinCatalog.bytes differ diff --git a/Assets/StreamingAssets/yoo/DefaultPackage/BuildinCatalog.json b/Assets/StreamingAssets/yoo/DefaultPackage/BuildinCatalog.json index dda296f..3932c9f 100644 --- a/Assets/StreamingAssets/yoo/DefaultPackage/BuildinCatalog.json +++ b/Assets/StreamingAssets/yoo/DefaultPackage/BuildinCatalog.json @@ -1,7 +1,7 @@ { "FileVersion": "1.0.0", "PackageName": "DefaultPackage", - "PackageVersion": "2025-05-23-977", + "PackageVersion": "2025-05-23-1055", "Wrappers": [ { "BundleGUID": "67c554f97d728406e71b28fe19fcddce", diff --git a/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage.version b/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage.version index 29e4582..49fbe60 100644 --- a/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage.version +++ b/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage.version @@ -1 +1 @@ -2025-05-23-977 \ No newline at end of file +2025-05-23-1055 \ No newline at end of file diff --git a/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-1055.bytes b/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-1055.bytes new file mode 100644 index 0000000..64e8942 Binary files /dev/null and b/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-1055.bytes differ diff --git a/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-977.bytes.meta b/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-1055.bytes.meta similarity index 74% rename from Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-977.bytes.meta rename to Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-1055.bytes.meta index 91c30fc..807d7ef 100644 --- a/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-977.bytes.meta +++ b/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-1055.bytes.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 7918dadf1d094b34b856510de1e1617e +guid: 3a2d7c9ac6eef3645af59e9d5794c56c DefaultImporter: externalObjects: {} userData: diff --git a/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-1055.hash b/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-1055.hash new file mode 100644 index 0000000..9e22b3b --- /dev/null +++ b/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-1055.hash @@ -0,0 +1 @@ +60f3747d \ No newline at end of file diff --git a/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-977.hash.meta b/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-1055.hash.meta similarity index 74% rename from Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-977.hash.meta rename to Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-1055.hash.meta index e43a003..856ad98 100644 --- a/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-977.hash.meta +++ b/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-1055.hash.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 610b84a701b1dc24ca49e05fd243395a +guid: 429ce7074b5af8f4aa562698f86013ba DefaultImporter: externalObjects: {} userData: diff --git a/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-977.bytes b/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-977.bytes deleted file mode 100644 index 0ef4d1c..0000000 Binary files a/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-977.bytes and /dev/null differ diff --git a/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-977.hash b/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-977.hash deleted file mode 100644 index 863f3bc..0000000 --- a/Assets/StreamingAssets/yoo/DefaultPackage/DefaultPackage_2025-05-23-977.hash +++ /dev/null @@ -1 +0,0 @@ -728d4ed4 \ No newline at end of file