Я работаю в Unity 2018 Asset Bundle. В моем проекте я должен упаковать всю сцену в AssetBundle, и когда мне нужно, игра загрузит AssetBundle из Интернета, а затем распакует его.
Я использовал этот код для загрузки сцены из assetbundle.
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System;
using System.IO;
using UnityEngine.SceneManagement;
public class AssetBundleSceneLoader : MonoBehaviour
{
public string url;
public int downloaded = 0;
AssetBundle bundle;
public System.Object test;
public Slider progressbar;
public float progress;
WWW www;
void Update()
{
progress = www.progress;
progressbar.value = progress;
}
IEnumerator Start()
{
ClearCacheExample ();
if (downloaded == 0)
{
using ( www = WWW.LoadFromCacheOrDownload (url, 0))
{
yield return www;
if (www.error != null)
throw new Exception ("WWW download had an error:" + www.error);
if (www.error == null)
{
bundle = www.assetBundle;
}
}
if (Caching.ready == true)
{
downloaded = 1;
string[] scenePath = bundle.GetAllScenePaths();
Debug.Log(scenePath[0]);
SceneManager.LoadScene(scenePath[0]);
}
}
}
void ClearCacheExample()
{
Directory.CreateDirectory("Cache1");
Directory.CreateDirectory("Cache2");
Directory.CreateDirectory("Cache3");
Caching.AddCache("Cache1");
Caching.AddCache("Cache2");
Caching.AddCache("Cache3");
bool success = Caching.ClearCache();
if (!success)
{
Debug.Log("Unable to clear cache");
}
}
}
Я упаковал свою сцену и поместил ее в Dropbox. Он скачивается из интернета. Сцена загружается нормально. Я столкнулся с некоторыми проблемами здесь:
Не весь экран загружается. Экран уменьшается до четверти своего размера, а затем воспроизводится.
Что не так в моем коде? Доступна ли какая-либо отдельная процедура для загрузки сцены из пакета ресурсов ...?
Как я могу загрузить сцену из набора ресурсов? Есть ли в наличии какой-нибудь образец проекта?
.
в имени файла (не включая.scene
), то есть известная ошибка, которая была исправлена в 2018.3.4 - person Draco18s no longer trusts SE   schedule 20.02.2019