12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #if UNITY_EDITOR
- using XGame.Framework.Utils;
- using XGame.Framework.Asset.Addressable;
- using UnityEngine;
- namespace XGame.Framework.Asset
- {
- internal partial class LoaderBuilder
- {
- private void InitMainBundleEditor()
- {
- _isBundleEncrypt = false;
- var bundlePath = FileUtils.GetAssetBundlePath(Define.MANIFEST_BUNDLE_FULLNAME);
- _mainbundle = AssetBundle.LoadFromFile(bundlePath);//"kcmanifest.bundle"
- if (_mainbundle == null)
- { //Editor下多尝试一次加载
- AssetsLog.Debug($"加载未加密Manifest Assetbundle失败,更换为加密方式加载。");
- _mainbundle = AssetBundle.LoadFromFile(bundlePath, 0, Define.MANIFEST_BUNDLE_OFFSET);
- if (_mainbundle != null)
- {
- _isBundleEncrypt = true;
- }
- else
- {
- Log.Error($"Manifest Assetbundle加载失败!");
- }
- }
- }
- private IAddressableManifest LoadAddressableManifestEditor()
- {
- var manifest = new CSharpAddressableManifest();
- var infoSo = LoadAddressableInfosSo(AddressableClassify.BuiltIn);
- manifest.Init(infoSo);
- infoSo = LoadAddressableInfosSo(AddressableClassify.Product);
- manifest.Init(infoSo);
- infoSo = LoadAddressableInfosSo(AddressableClassify.Tests);
- manifest.Init(infoSo);
- return manifest;
- }
- private AddressableInfosSo LoadAddressableInfosSo(AddressableClassify classify)
- {
- string fileName;// = classify == AddressableClassifyOperation.BuiltIn ? Define.BUILTIN_ASSET_MANIFEST : Define.PRODUCT_ASSET_MANIFEST;
- if (classify == AddressableClassify.BuiltIn)
- {
- fileName = Define.BUILTIN_ASSET_MANIFEST;
- }
- else if (classify == AddressableClassify.Tests)
- {
- fileName = "TestAssetsManifest";
- }
- else
- {
- fileName = Define.PRODUCT_ASSET_MANIFEST;
- }
- var manifestPath = $"Assets/AssetConfigs/Addressable/{fileName}.asset";
- var assetManifest = UnityEditor.AssetDatabase.LoadAssetAtPath<AddressableInfosSo>(manifestPath);
- if (assetManifest == null && classify == AddressableClassify.Product)
- {
- Log.Error($"Can't find AddressableInfosSo. Path:{manifestPath}");
- }
- return assetManifest;
- }
- }
- }
- #endif
|