Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# unity3d Caching.CleanCache获胜';行不通_C#_Unity3d_Assetbundle - Fatal编程技术网

C# unity3d Caching.CleanCache获胜';行不通

C# unity3d Caching.CleanCache获胜';行不通,c#,unity3d,assetbundle,C#,Unity3d,Assetbundle,我在游戏中使用AssetBundles,希望让用户在设置页面中清除AssetBundle缓存。 我已尝试使用Caching.CleanCache,但它返回“false”,因为我正在“设置”页面中使用AssetBundle缓存。我已尝试加载空场景并清除缓存,但也无法工作。 我需要重新启动应用程序吗?有人知道解决办法吗 让我回答我的问题。 在做了一些研究之后,我发现我的游戏有一些未加载的资产绑定。 卸载所有资产绑定后,我能够删除缓存。对我来说,调用以下命令是不够的: AssetBundle.Unlo

我在游戏中使用AssetBundles,希望让用户在设置页面中清除AssetBundle缓存。 我已尝试使用Caching.CleanCache,但它返回“false”,因为我正在“设置”页面中使用AssetBundle缓存。我已尝试加载空场景并清除缓存,但也无法工作。 我需要重新启动应用程序吗?有人知道解决办法吗

让我回答我的问题。 在做了一些研究之后,我发现我的游戏有一些未加载的资产绑定。
卸载所有资产绑定后,我能够删除缓存。

对我来说,调用以下命令是不够的:

AssetBundle.UnloadAllAssetBundles(false);
bool success = Caching.ClearCache();
我在缓存中有一个资产绑定,它不是用UnloadAllAssetBundles卸载的。这种情况发生在一个bundle中,我在前面立即请求了两个bundle。第二次,捆绑包下载失败。缓存处于不一致的状态,然后无法卸载。 因此,在我解决了2个请求问题之后,上面的代码工作得很好


通过使第二个请求等待第一个请求完成,解决了同一资产捆绑包的2个请求问题。

您可以使用Caching.expirationDelay设置资产捆绑包在自动删除之前在缓存中可能未使用的秒数。返回false并不一定意味着它不起作用。如果Caching.Clean返回值下降,缓存可能已被清除或未使用。@Tobias Theel I
我尝试过缓存。Clean return false不更改缓存文件夹和缓存。SpaceOccessed显示大量字节,但在删除缓存文件和缓存时返回true。SpaceOccessed返回0。我发现我得到了一些未加载的assetbundles。因此我在调用Caching.CleanCache之前卸载所有资产绑定后,能够清除缓存。谢谢