Не могу открыть AssetBudnle на iPhone

219
12 октября 2018, 06:50

Приложение, по клику на кнопку с названием проекта, должна перейти на другую сцену. После переход должна произвестись распаковка AssetBundle'а.

Приложение нормально работает на компьютере, но не работает на iPhone(кидает исключение).

При этом пишет что такой файл существует(он не пустой).

AssetBundle я распаковываю с помощью класса(вроде взял из официальной документации) AssetBundleManager:

using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;
static public class AssetBundleManager
{
  // A dictionary to hold the AssetBundle references
  static private Dictionary<string, AssetBundleRef> dictAssetBundleRefs;
  static AssetBundleManager()
  {
      dictAssetBundleRefs = new Dictionary<string, AssetBundleRef>();
  }
  // Class with the AssetBundle reference, url and version
  private class AssetBundleRef
  {
      public AssetBundle assetBundle = null;
      public int version;
      public string url;
      public AssetBundleRef(string strUrlIn, int intVersionIn)
      {
          url = strUrlIn;
          version = intVersionIn;
      }
  };
// Get an AssetBundle
public static AssetBundle getAssetBundle(string url, long version)
{
    string keyName = url + version.ToString();
    AssetBundleRef abRef;
    if (dictAssetBundleRefs.TryGetValue(keyName, out abRef))
        return abRef.assetBundle;
    else
        return null;
}
// Download an AssetBundle
public static IEnumerator downloadAssetBundle(string url, long version)
{
    string keyName = url + version.ToString();
    if (dictAssetBundleRefs.ContainsKey(keyName))
        yield return null;
    else
    {
        while (!Caching.ready)
            yield return null;
        using (WWW www = WWW.LoadFromCacheOrDownload(url, (int)version))
        {
            yield return www;
            if (www.error != null)
                throw new Exception("WWW download:" + www.error);
            AssetBundleRef abRef = new AssetBundleRef(url, (int)version);
            abRef.assetBundle = www.assetBundle;
            dictAssetBundleRefs.Add(keyName, abRef);
        }
    }
}
// Unload an AssetBundle
public static void Unload(string url, int version, bool allObjects)
{
    string keyName = url + version.ToString();
    AssetBundleRef abRef;
    if (dictAssetBundleRefs.TryGetValue(keyName, out abRef))
    {
        abRef.assetBundle.Unload(allObjects);
        abRef.assetBundle = null;
        dictAssetBundleRefs.Remove(keyName);
    }
}

}

Вот скрины с результатами работы приложения на iPhone:

В чём может быть проблема и как её исправить ?

READ ALSO
c# CefSharp много жрет памяти

c# CefSharp много жрет памяти

На c# пишу бота, который самостоятельно заходит на сайты для серфинга, использую библиотеку CefSharpОткрываю 14 страниц, а жрет больше, чем оригинальный...

189
Как динамически (через FOR, или foreach) наполнить datagridview столбцами и строками?

Как динамически (через FOR, или foreach) наполнить datagridview столбцами и строками?

коллегиУ меня имеются две таблицы, customers и orders

193
DataSet и сохранение в БД

DataSet и сохранение в БД

Подскажите пожалуйста

326
Получить нужные значения из строки

Получить нужные значения из строки

Есть строка с текстомСреди этого текста есть такой текст

212