2016-05-09 11 views
0

Im Hauptmenü meines Spiels gibt es einen Abschnitt für den Spieler, um die Haut Ihres Charakters zu wählen und das Spiel zu betreten.Load Prefab durch PlayerPrefers bei neuer Szene

Ich habe Mühe, den "Controller Animator" & "Transform" in PlayerPrefers zu speichern, die vom Benutzer ausgewählt wurde und in der nächsten Szene "Spiel" bei x-0, Y-0, z-0 instanziiert.

Alle Skins haben bereits ihren "Controller" & "Transform" an den Inspektor angeschlossen (siehe Bild im Anhang).

Nur ich kann sie nicht in der nächsten "Spiel" -Szene instanziieren.

Menu skin CHOICE

Game SCENE

Im Folgenden meiner Scrip die Haut wählen und das "Spiel" ein.

using UnityEngine; 
using System.Collections; 
using UnityEngine.SceneManagement; 

public class Choice : MonoBehaviour { 

    public RuntimeAnimatorController anim; 
    public Transform Bee; 
    string skinChoice = "skin"; 

    public void ChangeAnimator() { 

     Animator animator = Bee.gameObject.GetComponent<Animator>(); 
     animator.runtimeAnimatorController = anim; 
    } 

    public void Play() 
    { 
     SceneManager.LoadScene ("Game"); 
    } 
} 
+0

mit playerprefs ist sehr einfach: http://docs.unity3d.com/ScriptReference/PlayerPrefs.html – Fattie

Antwort

-1

Sie können den Namen des Fertig als statische Zeichenfolge festgelegt und es zu Beginn der nächsten Spielszene beziehen:

public static string skinchoice = "skin"; 

Und einen Schöpfer Klasse:

public class Creator : MonoBehaviour { 
    void Start(){ 
     if (Choice.skinchoice == "skin1") Instantiate(Bee1); 
     else if (Choice.skinchoice == "skin2") Instantiate(Bee2); 
     ... 
    } 
} 
+1

Varu, im Allgemeinen niemals "static" in Unity verwenden. sicherlich Anfänger sollten das nie tun; Es ist fast unmöglich zu verstehen, was es in einer ECS-Einstellung bedeutet. (Auch für diese Frage ist es völlig irrelevant: benutze einfach PlayerPrefs.) – Fattie

+0

Ich kannte playerprefs nicht, aber ich verstehe, dass sie für verschiedene Spielsitzungen verwendet werden, aber es ist wahrscheinlich eine bessere Idee. Wie auch immer, warum nicht Statik in Unity verwenden? – Varu

Verwandte Themen