Как загрузить сцену из пакета активов в единстве 2018 - PullRequest
0 голосов
/ 20 февраля 2019

Я работаю в 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.Загружается из интернета.Сцена загружается нормально.Здесь я столкнулся с некоторыми проблемами:

Не весь экран загружается.Экран уменьшается до четверти своего размера, а затем он играет.

Что не так в моем коде?Есть ли какая-либо отдельная процедура для загрузки сцены из пакета активов ...?

Как я могу загрузить сцену из пакета активов?Есть ли пример проекта?

...