2017-12-07 3 views
0

Ich habe 2 Szenen und ich möchte auf den Button Klick umleiten. Ich habe AssetBundle dafür verwendet. Hier ist, den Code für den Export von Vermögenswerten:Redirect von einer Szene zu einer anderen Unity 3D-Skript

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); 
    } 
} 

Und hier ist der Code für das Laden:

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; 
    } 
} 

Also, wenn ich meine Szene in Unity betreibe ich einen solchen Fehler in der Konsole erhalten:

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

ich habe meine Szenen in Assets Ordner abgelegt:

enter image description here

Auch ich habe sie hinzugefügt Einstellungen Build:

enter image description here

So wie kann ich diesen Fehler zu beheben und die Umleitung Arbeit machen? Ist das ein Codeproblem oder ein Dateispeicherproblem?

+0

So können wir Emojis jetzt benutzen? – Thalthanas

+0

@Thalthanas versehentlich seltsame Formatierung :) – Cassie

Antwort

2

Verwenden SceneManager.LoadScene()

public static void LoadScene(int sceneBuildIndex, 
        SceneManagement.LoadSceneMode mode = LoadSceneMode.Single); 
public static void LoadScene(string sceneName, 
        SceneManagement.LoadSceneMode mode = LoadSceneMode.Single); 
1

Der Pfad, den Sie fragen, ist

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

aber Ihr richtiger Weg ist

"D:/userdata/Documents/Scene1/Assets/StreamingAssets\AssetBundle" <- no 's' 
+0

Danke !! Habe nicht bemerkt. Aber jetzt, wenn ich auf den Button klicke, erhalte ich keinen Fehler und werde nicht zu einer anderen Szene weitergeleitet – Cassie

Verwandte Themen