tuyoogame / YooAsset

unity3d resources management system
https://www.yooasset.com/
Apache License 2.0
2.41k stars 469 forks source link

多Packages的UniqueBundleName开启下依旧存在错误:The AssetBundle '__data' can't be loaded because another AssetBundle with the same files is already loaded. #277

Closed bbsuuo closed 5 months ago

bbsuuo commented 5 months ago

编辑器下测试真机热更流程 ,出现错误 The AssetBundle '__data' can't be loaded because another AssetBundle with the same files is already loaded. {AE4FB998-5F23-4fbd-8203-34A183CE2EB0} 打包端已确认勾选 Unique Bundle Name 总共分了5个package

真机未包含任何buildin资产 BuildinQueryServices 只是简单的返回false ` async UniTask InitializePackage(string packageName) { var package = YooAssets.TryGetPackage(packageName); if(package == null) { package = YooAssets.CreatePackage(packageName); } var initParameters = new HostPlayModeParameters(); initParameters.RemoteServices = hostServerInfo.CreateRemoteServer(package.PackageName); initParameters.BuildinQueryServices = new NoBuildinQueryServices(); var initOperation = package.InitializeAsync(initParameters); await initOperation;

        if (initOperation.Status != EOperationStatus.Succeed) 
        {
            Debug.LogError(initOperation.Error);
            throw new Exception(initOperation.Error);
        }
        Debug.Log($"initialize package {package.PackageName} succeed");
        return package;
    }`

打包和加载都未使用任何加密工具 检查沙盒目录: {2BAE69B6-7122-40aa-B700-7EEF55A665FB} {A730BE4C-BE14-4570-9642-E6141E28EB0B} 结合报错似乎发现assetbundle名字全是data了? The AssetBundle 'data' can't be loaded because another AssetBundle with the same files is already loaded.

似乎热更下来的文件不会保持原本的ab结构?但是读取时没还原到 cache_bundle下吗? 触发发生了AssetBundleFileLoader 的 if (CacheBundle == null)

bbsuuo commented 5 months ago

检查下了代码实现: {1CC4F40E-D741-4784-B625-E19880FD6614} 我暂时没试真机环境 但是编辑器环境下尝试似乎热更流程会出现错误

bbsuuo commented 5 months ago

如果是这么设计的话 那可能是依赖项的ab计算重复了? 我这边使用了一个package测试加载了一个场景 应该不会出现冲突才对

gmhevinci commented 5 months ago

工程内有同名的场景文件导致的。