tuyoogame / YooAsset

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

2.1.2 版本,WebGL 平台调用 ResourcePackage 的 DestroyPackage 函数抛异常的问题 #316

Closed AceLam closed 2 months ago

AceLam commented 3 months ago

根本原因在于:

        public void ForceUnloadAllAssets()
        {
#if UNITY_WEBGL
            throw new Exception($"WebGL not support invoke {nameof(ForceUnloadAllAssets)}");
#else

然后 DestroyPackage 调用了 ForceUnloadAllAssets 函数

        internal void DestroyPackage()
        {
            if (_isInitialize)
            {
                _isInitialize = false;
                _initializeError = string.Empty;
                _initializeStatus = EOperationStatus.None;

                _bundleQuery = null;
                _playModeImpl = null;
                _persistentMgr = null;
                _resourceLoader = null;

                if (_resourceMgr != null)
                {
                    _resourceMgr.ForceUnloadAllAssets();
                    _resourceMgr = null;
                }

这样导致在 WebGL 只能 Initial Package,而不能 Destroy Package。 请问是出于什么考虑,要在 WebGL 平台抛 ForceUnloadAllAssets 的异常呢?感谢解答。

另外,有看到 YooAsset 文档关于微信小游戏支持解决方案的部分,其中提到不支持多Package。 经在微信小游戏环境中测试,多 Package 的使用没发现问题(除了不能 Destroy Package),所以想知道为什么微信小游戏不支持多 Package 呢,是某些使用方式不支持吗,还是出于什么原因?望解答,感谢。

gmhevinci commented 2 months ago

2.1版本里WebGL平台不支持 ForceUnloadAllAssets() 方法。 在最新的2.2版本里,解决了该问题。同时支持了多个package