Ich bin mit Unity für einen Auftrag beschäftigt und habe eine "Damage Chain" erstellt, bei der ich, wenn ich schnell genug schiebe, die Schadenskette erhöht.Unity: Survival Shooter Tutorial: Wie man zwischen zwei Hintergrundsongs umschaltet
Dann, wenn der Schaden Kette hoch genug bekommt, wollte ich von der Hintergrundmusik wechseln „Enter Sandman“ von Metallica ...
Aber wenn ich hinzufügen, die „Enter Sandman“ MP3 zum Hintergrundmusik Objekt in der Hierarchie, ich muss eine zweite "Audio Source", mit dem gleichen Namen (dh Audio Source) hinzufügen.
Dann, wenn ich versuche, es in den Code zu verwalten, kann ich nicht einfach GetComponent<AudioClip>
wie ich anderswo laufen lassen.
Wie kann ich zwischen den beiden Songs in einem Skript wechseln? Hier ist ein Bild von meinem Objekt Set-up, dann ist der Code ...
Und mein Code (wie es ist), die SongManager:
using UnityEngine;
using System.Collections;
public class SongManager : MonoBehaviour {
AudioSource regular_music;
AudioSource high_dmg_music;
// Use this for initialization
void Start() {
regular_music = GetComponent<AudioSource>();
high_dmg_music = GetComponent<AudioSource>();
regular_music.loop = true;
regular_music.Play();
high_dmg_music.loop = false;
high_dmg_music.Stop();
}
// Update is called once per frame
void Update() {
if (DamageManager.dmg_chain > 1500) {
regular_music.loop = false;
high_dmg_music.loop = true;
high_dmg_music.Play();
} else {
if (high_dmg_music.isPlaying) {
high_dmg_music.loop = false;
high_dmg_music.Stop();
regular_music.loop = true;
regular_music.Play();
}
}
}
}
Offensichtlich ist der Code funktioniert nicht, aber ich habe es trotzdem beendet.
Wie würde ich diese Konfiguration implementieren?
Ich wollte nur wissen, wie streitlustig Metallica ist. Sie möchten diesen Song wahrscheinlich nicht in einer endgültigen Version verwenden. – bodangly
Haha, guter Punkt; Ich benutze für eine Aufgabe. Ich könnte zu einem anderen Lied wechseln. Ich änderte die Spawnrate auf eine Zehntelsekunde, machte eine gigantische Waffe, die 1000 Mal pro Sekunde schießt ... – bordeo