Как загрузить локальный файл как AssetBundle с WWW - PullRequest
0 голосов
/ 07 февраля 2019

Поэтому я пытался сделать так, чтобы пользователи могли загрузить файл .obj и прочитать его как AssetBundle, но я не могу понять это.

Я выяснил, как получитьпуть к файлу, но я не могу загрузить его как пакет ресурсов, он просто возвращает ноль.

Вот мой код:

        WWW bundleRequest = new WWW(@"file://" + pathName);

        while (!bundleRequest.isDone)
        {
            yield return null;
        }

        AssetBundle bundle = null;
        if (bundleRequest.bytesDownloaded > 0)
        {
            AssetBundleCreateRequest myRequest = AssetBundle.LoadFromMemoryAsync(bundleRequest.bytes);
            while (!myRequest.isDone)
            {
                Debug.Log("loading....");
                yield return null;
            }
            if (myRequest.assetBundle != null)
            {
                bundle = myRequest.assetBundle;
                GameObject model = null;
                if (bundle != null)
                {
                    AssetBundleRequest newRequest = bundle.LoadAssetAsync<GameObject>("Test");
                    while (!newRequest.isDone)
                    {
                        Debug.Log("loading ASSET....");
                        yield return null;
                    }
                    model = (GameObject)newRequest.asset;

                    bundle.Unload(false);
                }
            }
            else
            {
                Debug.LogError("COULDN'T DOWNLOAD ASSET BUNDLE FROM URL");
            }
        }
        else
        {
            Debug.LogError("COULDN'T DOWNLOAD ASSET BUNDLE FROM URL");
        }

pathName здесь: "C:\\Users\\mySuperCoolName\\OneDrive\\Documents\\Fun\\Programming\\Ungoing projects\\ThiefCop\\Unity Mobile\\Assets\\Prefabs\\TestOBJ.obj".Кажется, все работает до AssetBundleCreateRequest, когда вызывается AssetBundle.LoadFromMemoryAsync(), где myRequest.assetBundle == null, даже если файл был загружен правильно.

Я также получаю сообщение об ошибке, которое, вероятно, связано с моей проблемой: ErrorЯ искал, что это значит, но не смог найти ...

Действительно сложно объяснить, что я имею в виду, но я очень надеюсь, что вы найдете ответ на этот вопрос, я искалчасы и между нами, я не очень разбираюсь в File loadind и Reading ...Не стесняйтесь спрашивать, если вы не поняли мой плохой английский ...Заранее спасибо:)

1 Ответ

0 голосов
/ 07 февраля 2019

https://docs.unity3d.com/ScriptReference/BuildPipeline.BuildAssetBundles.html

Короче говоря:

  • Импортируйте ваш объект в Unity
  • Дайте ему имя AssetBundle (нажмите на него, затем в нижней частипредставление инспектора)
  • Вызовите эту функцию
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...