在我们的iPad应用中,我们需要加载fbx文件(大小为1MB - 100MB)作为资产包。我开始使用大小为26MB的fbx文件进行测试,它创建了一个大小为17MB的资产包。当我运行测试场景以在iPad中加载此资产包时,它会在大约1分钟后加载。然后我得到了记忆警告。我使用Xcode监视内存,似乎内存使用量从大约1MB增加到65Mb,然后就在模型显示内存一次增加到大约175MB之前。以下是我的代码。
我见过其他用户发布的类似问题。但我没有在任何这些线程中看到它的正确解决方案。当我读到这些主题时,我认为在解压缩资产包时内存会增加。但我不明白它为什么会大约170MB左右。
我们可以做些什么来减少内存使用量?
感谢
public class CachingLoad : MonoBehaviour {
public string BundleURL;
public string AssetName;
public int version;
void Start() {
StartCoroutine (DownloadAndCache());
}
IEnumerator DownloadAndCache (){
// Wait for the Caching system to be ready
while (!Caching.ready)
yield return null;
BundleURL = "http://10.30.3.228:8080/TestDownload/assetBundle1.unity3d";
// Load the AssetBundle file from Cache if it exists with the same version or download and store it in the cache
using(WWW www = WWW.LoadFromCacheOrDownload (BundleURL, version)){
yield return www;
if (www.error != null)
throw new Exception("WWW download had an error:" + www.error);
AssetBundle bundle = www.assetBundle;
if (AssetName == "")
Instantiate(bundle.mainAsset);
else
Instantiate(bundle.Load(AssetName));
// Unload the AssetBundles compressed contents to conserve memory
bundle.Unload(false);
} // memory is freed from the web stream (www.Dispose() gets called implicitly)
}
}