Mehrere Sounds gleichzeitig abspielen

Diese Seite wurde aktualisiert :
Erstellungsdatum der Seite :

Verifizierungsumgebung

Fenster
  • Windows 11
Unity-Editor
  • 2021.3.3f1
Eingabesystem-Paket
  • 1.3.0

Voraussetzungen für diesen Tipp

Die folgenden Einstellungen wurden im Vorfeld als Prämisse für die Beschreibung dieses Tipps vorgenommen.

Über das Material, das in der Probe enthalten ist

Soundeffekte sind von den folgenden Seiten ausgeliehen.

Informationen zu Audiodateien

Die folgenden Audiodateiformate können mit den Standardfunktionen von Unity wiedergegeben werden: Bitte bereiten Sie es im Voraus vor, da es in diesen Tipps verwendet wird.

  • WAV (.wav)
  • OggVorbis (.ogg)
  • MPEG-Schicht 3 (.mp3)

Weitere Informationen finden Sie in der offiziellen Unity-Dokumentation.

Informationen zur gleichzeitigen Audiowiedergabe

In den vorherigen Tipps haben wir AudioSource verwendet, um eine Audiodatei abzuspielen, aber als wir versuchten, einen einzelnen Sound und mehrere Sounds zu erstellen, verschwand der vorherige Sound. Wenn Sie beispielsweise zwei Explosionen in einem Spiel haben, ist es unnatürlich, dass der erste Soundeffekt verschwindet, wenn die zweite Explosion einen Soundeffekt erzeugt. In diesem Abschnitt wird beschrieben, wie Sie denselben Sound mehrmals übereinander abspielen können.

Schritte zum gleichzeitigen Abspielen von Audio

Hier werde ich von dem Punkt aus erklären, an dem ich ein neues Projekt erstellt habe, aber wenn Sie Unity bis zu einem gewissen Grad kennen, können Sie nur die relevanten Teile ausschneiden und auswendig lernen.

Dieses Mal wird der Soundeffekt jedes Mal abgespielt, wenn Sie auf die Schaltfläche klicken. Erstellen Sie Ihre Benutzeroberfläche wie gezeigt. Die Details sind angemessen und gut.

Fügen Sie eine Audiodatei hinzu, indem Sie sie in Ihrem Projekt ablegen.

Fügen Sie der Hierarchie eine Audioquelle hinzu. In diesem Fall legen Sie den Audioclip nicht direkt auf die AudioSource fest.

Fügen Sie ein Skript hinzu. ButtonEvent Lassen Sie den Namen als .

Das Skript sieht wie folgt aus:

using UnityEngine;

public class ButtonEvent : MonoBehaviour
{
  [SerializeField] private AudioSource AudioSource;

  /// <summary>音声データ。</summary>
  [SerializeField] private AudioClip AudioClip;

  public void OnClickPlay()
  {
    // オーディオを再生します
    AudioSource.PlayOneShot(AudioClip);
  }
}

AudioSource Betrachten Sie es als eine Klasse zur Steuerung von Audio, genau wie die vorherigen Tipps.

AudioClip ist eine Klasse, die Audiodaten speichert. Hier können Sie Audiodateien einstellen.

AudioSource.PlayOneShot Wenn Sie es als Argument an die Methode übergeben, können Sie die AudioClip Audiodaten wiedergeben. Der von dieser Methode wiedergegebene Ton wird unabhängig gesteuert. Wenn Sie diese Methode erneut aufrufen, wird sie als neue Stimme getrennt von der vorherigen abgespielt. Daher ist es möglich, den Sound bei jedem Aufruf dieser Methode erneut abzuspielen.

Hängen Sie das Skript an EventSystem an.

Legen Sie für "Audioquelle" die "Audioquelle" fest, die der Hierarchie hinzugefügt wird.

Legen Sie für "Audioclip" eine Audiodatei aus dem Projekt fest.

Legen Sie abschließend die Methode auf das click-Ereignis der Schaltfläche fest.

Starten Sie das Spiel und klicken Sie auf die Schaltfläche. Ich denke, die Soundeffekte werden abgespielt. Wenn Sie während der Wiedergabe erneut auf die Schaltfläche klicken, wird der neue Ton abgespielt, ohne dass der vorherige Ton verschwindet.

AudioClip Auf diese Weise ist es nun möglich, den gleichen Sound übereinander abzuspielen, indem man den Ton über abspielt. Dadurch kann das Spiel abgespielt werden, ohne dass der vorherige Ton unnatürlich verschwindet.

Nachteile beim Spielen mit AudioClip

AudioClip Ich konnte das Audio übereinander abspielen, indem ich es mit abspielte, aber im Gegenteil, die folgenden Nachteile treten auf.

Der Ton wird laut

Wie Sie sehen können, wenn Sie kontinuierlich auf die Schaltfläche klicken, überlagern sich die Töne und die gespielte Harmonik wird immer lauter. Wenn Sie z. B. einen Soundeffekt abspielen möchten, wenn ein Angriff in einem Spiel getroffen wird, Wenn mehrere Züge gleichzeitig auftreten, ohne dass Maßnahmen ergriffen werden, können sie mit einer ungewöhnlichen Lautstärke abgespielt werden.