Unity Musik nur in bestimmten Szenen?
Ich habe in Unity ein Hauptmenü, einen Button für Play und einen Button für Optionen. Wenn man auf einen dieser Buttons drückt, lädt die dazugehörige Szene.
Ich habe nur ein Skript, dass die Musik in allen Szenen laufen lässt, ohne zu unterbrechen (DontDestroyOnLoad).
Ich möchte aber nur, dass die Musik Im Hauptmenü und der Optionsmenü-Szene läuft und nicht in der Spielszene. Das Skript habe ich zusammen mit einer Audio Source-Komponente in einem leeren Game Object im Hauptmenü plaziert. Wenn jemand weiß, wie das geht?
Skipt:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class KeepBackgroundMusic : MonoBehaviour
{
void Awake()
{
DontDestroyOnLoad(transform.gameObject);
}
}
2 Antworten
a) Vor Wechsel in die Spielszene kann das Game Objekt explizit mit Destroy entfernt werden.
b) Die AudioSource-Klasse stellt Methoden zur Wiedergabesteuerung (Play, Pause, Stop) zur Verfügung. Für einen Übergang zwischen Spielwelt und Menü könnte man sich einen einfachen Fade In/Out bauen, indem man einfach nur innerhalb eines Zeitintervalls die Lautstärke kontinuierlich hebt/senkt.
Das Skript, welches für den Szenenwechsel verantwortlich ist, muss auf das Game Object mit der Audio Source zugreifen. Du kannst das Game Object bspw. mit einem Tag ausstatten und dann mittels der FindGameObjectsWithTag-Methode finden.
Ich habe schon lange nichts mehr mit Unity gemacht, aber wenn ich mich Recht erinnere, geht es wie folgt:
- Bestimmte Szene laden
- Leeres Gameobject platzieren
- Das Audioskript da drauf machen und darauf achten, dass du nicht mehrere Audiolistener in einer Szene hast
Ansonsten schau vlt. auf YouTube oder z.B. StackOverflow. Gibt da sicher genug Tutorials
ich habe ja ein leeres gameobject erstellt ein audiosource und das audioskript drauf gepackt.In dem skript steht ja dass der sound in allen szenen beibehalten wird ich will den sound aber nur in bestimmten szenen.
hättest du einen Beispiel code für Variante a ich habe rumprobiert aber nicht hingekrigt.Ich Habe Ja ein leeres gameobject mit audio source und dem skript in der main menu scene.woher weis das skript in welcher scene die musik weg sein soll ?