Jump to content
Unity Insider Forum

Spiel nach Button Click startet


Pasies

Recommended Posts

Hey,

ich habe einen Button erstellt mit einem simplen Script, der wie folgt aussieht:

public class MainMenu : MonoBehaviour
{
    public void PlayGame()
    {
        SceneManager.LoadScene(1);
    }

    public void QuitGame()
    {
        Application.Quit();
    }
}

Beim Index 1 ist die Scene vom Game. Wenn ich den Play Button klicke startet auch das Spiel. Nur mein Problem ist, dass das Spiel auch beim Starten der App startet. Man sieht es auch im Hintergrund, wo die Buttons noch im Vordergrund sind. Ich habe einen Script, in dem das Spiel abläuft. Der Aufbau des Scripts sieht wie folgt aus:

public class MainGame : MonoBehaviour
{ 
    // Start is called before the first frame update
    void Start()
    {
        GenerateGrid();
        StartCoroutine(startRound());
    }

    // Update is called once per frame
    void Update()
    {
    	CODE
    }
      
    private void GenerateGrid()
    {
	CODE
    }

    IEnumerator startRound()
    {
	Code
    }
}

Ich denke mal ich muss statt void Start() etwas anderes benutzen, habe aber leider nichts hilfreiches gefunden.

Vielen Dank

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich bin verwirrt... was hat der Button mit dem MainGame-Script zu tun?

Start wird auf einer Komponente ausgeführt, sobald das Objekt das erste Mal "das Licht der Welt erblickt". Also entweder, wenn die Szene, in der sie sich befindet, geladen wurde... oder wenn du das Objekt mit Instantiate spawnst. Oder nach AddComponent. Wenn dein MainGame.Start zu einem ungewollten Zeitpunkt ausgeführt wird, dann existiert das Objekt zu einem falschen Zeitpunkt, zu früh oder zu spät.

Wenn das Spiel startet, lädt Unity die erste Szene ganz oben in der Build List. Ob das jetzt ein Ladebildschirm, ein Hauptmenü, schon das Spiel oder irgendeine technische Szene ist, die andere Szenen lädt, ist egal.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hab zum Test die App auf meinem Handy getestet. Dort funktioniert es so wie es soll. Allerdings wird mir in Unity was anderes Visualisiert. Hier mal zwei Bilder: 1.thumb.png.dd309ebafccd58e9b9b01339f216ebcc.png2.thumb.png.b95b8491af85d256cbe12fa5f3e3f44b.png

Weiß du warum Unity das ganze so anzeigt, und im Hintergrund schon das Spiel läuft bzw. wie ich das ändern kann? Kannst du mir noch die Sterne hinter den Szenennamen erklären? 

DAnke

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 33 Minuten schrieb Pasies:

Weiß du warum Unity das ganze so anzeigt, und im Hintergrund schon das Spiel läuft bzw. wie ich das ändern kann?

Du hast im Editor beide Szenen gleichzeitig geladen. Unity kann das, nennt sich additives Laden von Szenen. Wenn du im Editor auf Play drückst, dann startet das Spiel nicht von vorne, sondern in der Szene (oder eben: in den Szenen), die du gerade offen hast. Damit kannst du dieses Level oder jenes Menü testen, ohne im Spiel erstmal mühsam da hin zu navigieren. Schließe einfach eine der beiden Szenen, indem du links in der Hierarchie mit rechts draufklickst.

vor 36 Minuten schrieb Pasies:

Kannst du mir noch die Sterne hinter den Szenennamen erklären? 

Das heißt, dass in der Szene etwas geändert wurde, was (noch) nicht gespeichert ist. Während der Play Mode läuft, kannst du aber nicht speichern (ist ja auch gut so).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...