Αναπαραγωγή πολλών ήχων ταυτόχρονα

Σελίδα ενημέρωση :
Ημερομηνία δημιουργίας σελίδας :

Περιβάλλον επαλήθευσης

παράθυρα
  • Παράθυρα 11
Επεξεργαστής ενότητας
  • 2021.3.3στ1
Πακέτο συστήματος εισόδου
  • 1.3.0

Προϋποθέσεις για αυτήν τη συμβουλή

Οι ακόλουθες ρυθμίσεις έχουν γίνει εκ των προτέρων ως προϋπόθεση για την περιγραφή αυτής της συμβουλής.

Σχετικά με το υλικό που περιλαμβάνεται στο δείγμα

Τα ηχητικά εφέ δανείζονται από τους ακόλουθους ιστότοπους.

Πληροφορίες για τα αρχεία ήχου

Οι ακόλουθες μορφές αρχείων ήχου μπορούν να αναπαραχθούν με τα τυπικά χαρακτηριστικά του Unity: Προετοιμάστε το εκ των προτέρων γιατί θα χρησιμοποιηθεί σε αυτές τις συμβουλές.

  • WAV (.wav)
  • OggVorbis (.ogg)
  • MPEG επίπεδο 3 (.mp3)

Για περισσότερες πληροφορίες, ανατρέξτε στην επίσημη τεκμηρίωση του Unity.

Πληροφορίες για την ταυτόχρονη αναπαραγωγή ήχου

Στις προηγούμενες συμβουλές, χρησιμοποιήσαμε το AudioSource για την αναπαραγωγή ενός αρχείου ήχου, αλλά όταν προσπαθήσαμε να κάνουμε έναν μόνο ήχο και πολλούς ήχους, ο προηγούμενος ήχος εξαφανίστηκε. Για παράδειγμα, εάν έχετε δύο εκρήξεις σε ένα παιχνίδι, είναι αφύσικο το πρώτο ηχητικό εφέ να εξαφανιστεί όταν η δεύτερη έκρηξη παράγει ένα ηχητικό εφέ. Αυτή η ενότητα περιγράφει τον τρόπο αναπαραγωγής του ίδιου ήχου πολλές φορές η μία πάνω στην άλλη.

Βήματα για την ταυτόχρονη αναπαραγωγή ήχου

Εδώ, θα εξηγήσω από το σημείο όπου δημιούργησα ένα νέο έργο, αλλά αν γνωρίζετε την Ενότητα σε κάποιο βαθμό, μπορείτε να κόψετε μόνο τα σχετικά μέρη και να τα απομνημονεύσετε.

Αυτή τη φορά, το ηχητικό εφέ θα αναπαράγεται κάθε φορά που κάνετε κλικ στο κουμπί. Δημιουργήστε το περιβάλλον εργασίας χρήστη όπως φαίνεται. Οι λεπτομέρειες είναι κατάλληλες και καλές.

Προσθέστε ένα αρχείο ήχου αποθέτοντάς το στο έργο σας.

Προσθέστε πηγή ήχου στην ιεραρχία. Σε αυτήν την περίπτωση, δεν θα ορίσετε το κλιπ ήχου απευθείας στο AudioSource.

Προσθέστε ένα σενάριο. ButtonEvent Αφήστε το όνομα ως .

Το σενάριο μοιάζει με αυτό:

using UnityEngine;

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

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

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

AudioSource Σκεφτείτε το ως μια κατηγορία για τον έλεγχο του ήχου, όπως και οι προηγούμενες συμβουλές.

AudioClip είναι μια κλάση που αποθηκεύει δεδομένα ήχου. Μπορείτε να ορίσετε αρχεία ήχου εδώ.

AudioSource.PlayOneShot Εάν το περάσετε ως όρισμα στη μέθοδο, μπορείτε να αναπαράγετε τα AudioClip δεδομένα ήχου. Ο ήχος που αναπαράγεται με αυτήν τη μέθοδο ελέγχεται ανεξάρτητα. Εάν καλέσετε ξανά αυτήν τη μέθοδο, θα αναπαραχθεί ως νέα φωνή ξεχωριστά από την προηγούμενη. Επομένως, είναι δυνατή η αναπαραγωγή του ήχου ξανά κάθε φορά που καλείται αυτή η μέθοδος.

Επισυνάψτε τη δέσμη ενεργειών στο EventSystem.

Για "Πηγή ήχου", ορίστε την "Πηγή ήχου" που προστέθηκε στην ιεραρχία.

Για το "Audio clip", ορίστε ένα αρχείο ήχου από το έργο.

Τέλος, ορίστε τη μέθοδο στο συμβάν κλικ του κουμπιού.

Εκτελέστε το παιχνίδι και κάντε κλικ στο κουμπί. Νομίζω ότι τα ηχητικά εφέ θα παίξουν. Επίσης, εάν κάνετε ξανά κλικ στο κουμπί κατά την αναπαραγωγή, ο νέος ήχος θα αναπαραχθεί χωρίς να εξαφανιστεί ο προηγούμενος ήχος.

AudioClip Με αυτόν τον τρόπο, είναι πλέον δυνατή η αναπαραγωγή του ίδιου ήχου ο ένας πάνω στον άλλο παίζοντας τον ήχο μέσω . Αυτό επιτρέπει στο παιχνίδι να παίζει χωρίς ο προηγούμενος ήχος να εξαφανίζεται αφύσικα.

Μειονεκτήματα κατά την αναπαραγωγή με το AudioClip

AudioClip Ήμουν σε θέση να παίξω τον ήχο ο ένας πάνω στον άλλο παίζοντας τον χρησιμοποιώντας , αλλά αντίθετα, εμφανίζονται τα ακόλουθα μειονεκτήματα.

Ο ήχος γίνεται θορυβώδης

Όπως μπορείτε να δείτε αν κάνετε κλικ στο κουμπί συνεχώς, οι ήχοι επικαλύπτονται και η αρμονική που παίζεται γίνεται όλο και πιο δυνατή. Για παράδειγμα, εάν θέλετε να παίξετε ένα ηχητικό εφέ όταν μια επίθεση χτυπά σε ένα παιχνίδι, Εάν πραγματοποιηθούν πολλές επιτυχίες ταυτόχρονα χωρίς να ληφθούν μέτρα, ενδέχεται να αναπαραχθούν σε μη φυσιολογική ένταση.