Open HXiaoMing opened 1 year ago
public static IEnumerator SwitchMode(bool offline)
{
#if !UNITY_EDITOR
YooAssets.Destroy();
YooAssets.Initialize();
package = YooAssets.CreateAssetsPackage(yooAssetSettings.DefaultPackage);
// 设置该资源包为默认的资源包,可以使用YooAssets相关加载接口加载该资源包内容。
YooAssets.SetDefaultAssetsPackage(package);
if (offline)
{
yield return Instance.InitializeYooAssetOfflinePlayMode();
}
else
{
yield return Instance.InitializeYooAssetHostPlayMode();
}
#else
throw new NotImplementedException();
#endif
}
可以销毁了重新初始化,还可以换 mode, 不过你可能需要回退到一个 patch 界面中干这件事。
public static IEnumerator SwitchMode(bool offline) { #if !UNITY_EDITOR YooAssets.Destroy(); YooAssets.Initialize(); package = YooAssets.CreateAssetsPackage(yooAssetSettings.DefaultPackage); // 设置该资源包为默认的资源包,可以使用YooAssets相关加载接口加载该资源包内容。 YooAssets.SetDefaultAssetsPackage(package); if (offline) { yield return Instance.InitializeYooAssetOfflinePlayMode(); } else { yield return Instance.InitializeYooAssetHostPlayMode(); } #else throw new NotImplementedException(); #endif }
可以销毁了重新初始化,还可以换 mode, 不过你可能需要回退到一个 patch 界面中干这件事。
感谢回复,如果有接口可以修改HostPlayModeParameters就更好了。还有一个问题,如果想在下载cdn资源的时候,在请求的头部加一些参数(FileDownloader 里面的UnityWebRequest 加一些请求参数),请问可以怎么实现?
提交的PR已经合并~~
动态替换HostURL地址,我感觉不是一个好主意。如果非要这样做的话,可以把package销毁了,然后重新创建一个package并初始化。
在联机运行模式下,YooAsset已经初始化了,一段时间后,服务器有一个新的DefaultHostServer,如何将新的DefaultHostServer更新到YooAsset?
原本想着调用YooAsset.AssetsPackage.InitializeAsync 更新DefaultHostServer,但是会报错(AssetsPackage is initialized yet)
System.Exception: AssetsPackage is initialized yet. at YooAsset.AssetsPackage.CheckInitializeParameters (YooAsset.InitializeParameters parameters) [0x00000] in <00000000000000000000000000000000>:0 at YooAsset.AssetsPackage.InitializeAsync (YooAsset.InitializeParameters parameters) [0x00000] in <00000000000000000000000000000000>:0
请问这种情况要怎么处理?