Перенаправление с одной сцены на другой скрипт Unity 3D

У меня есть 2 сцены, и я хочу перенаправить их с одной на другую при нажатии кнопки. Я использовал AssetBundle для этого. Вот код для экспорта активов:

public class ExportAssetBundles
{
    [MenuItem("Assets/Build AssetBundle")]
    static void ExportResource()
    {
        string folderName = "AssetBundles";
        string filePath = Path.Combine(Application.streamingAssetsPath, folderName);

        BuildPipeline.BuildAssetBundles(filePath, BuildAssetBundleOptions.None, BuildTarget.NoTarget);
    }
}

А вот и код для загрузки:

public class RedirectToMenu : MonoBehaviour {
    void Start () {
        Button btn = GetComponent<Button>);
        btn.onClick.AddListener(OnClick);
    }

    public void OnClick(){
        Debug.Log("You have clicked the button!");
        LoadAsset("MenuFinal");
    }

    IEnumerator LoadAsset(string assetBundleName)//, string objectNameToLoad)
    {
        string filePath = System.IO.Path.Combine(Application.streamingAssetsPath, "AssetBundles");
        filePath = System.IO.Path.Combine(filePath, assetBundleName);

        var assetBundleCreateRequest = AssetBundle.LoadFromFileAsync(filePath);
        yield return assetBundleCreateRequest;

        AssetBundle asseBundle = assetBundleCreateRequest.assetBundle;
    }
}

Поэтому, когда я запускаю свою сцену в Unity, я получаю такую ​​​​ошибку в консоли:

ArgumentException: The output path "D:/userdata/Documents/Scene1/Assets/StreamingAssets\AssetBundles" doesn't exist(at ExportAssetBundles.ExportResource () (at Assets/ExportAssetBundles.cs:16)

Я поместил свои сцены в папку Assets:

введите здесь описание изображения

Кроме того, я добавил их в настройки сборки:

введите здесь описание изображения

Итак, как я могу исправить эту ошибку и заставить работать перенаправление? Это проблема с кодом или проблема с расположением файлов?


person Cassie    schedule 07.12.2017    source источник
comment
Теперь мы можем использовать смайлики?   -  person Thalthanas    schedule 07.12.2017
comment
@Thalthanas случайно сделал странное форматирование :)   -  person Cassie    schedule 07.12.2017


Ответы (2)


Используйте SceneManager.LoadScene()

public static void LoadScene(int sceneBuildIndex, 
                   SceneManagement.LoadSceneMode mode = LoadSceneMode.Single);
public static void LoadScene(string sceneName, 
                   SceneManagement.LoadSceneMode mode = LoadSceneMode.Single);
person David    schedule 07.12.2017

Путь, о котором вы просите,

"D:/userdata/Documents/Scene1/Assets/StreamingAssets\AssetBundles"

но твой настоящий путь

"D:/userdata/Documents/Scene1/Assets/StreamingAssets\AssetBundle" <- no 's'
person BenBenMushi    schedule 07.12.2017
comment
Спасибо!! Не заметил. Однако теперь, когда я нажимаю кнопку, я не получаю никаких ошибок и не перенаправляюсь на другую сцену. - person Cassie; 07.12.2017