Reprodueix diversos sons alhora

Pàgina actualitzada :
Data de creació de la pàgina :

Entorn de verificació

Windows
  • Finestres 11
Editor d'unitat
  • 2021.3.3f1
Paquet del sistema d'entrada
  • 1.3.0

Requisits previs per a aquest consell

La configuració següent s'ha fet amb antelació com a premissa per a la descripció d'aquest consell.

Sobre el material inclòs en la mostra

Els efectes de so es prenen prestats dels llocs següents.

Quant als fitxers d'àudio

Els següents formats de fitxer d'àudio es poden reproduir amb les característiques estàndard d'Unity: Si us plau, prepareu-lo amb antelació perquè s'utilitzarà en aquests consells.

  • WAV (.wav)
  • OggVorbis (.ogg)
  • MPEG capa 3 (.mp3)

Per obtenir més informació, consulteu la documentació oficial de la Unitat.

Sobre la reproducció simultània d'àudio múltiple

En els consells anteriors, vam utilitzar AudioSource per reproduir un fitxer d'àudio, però quan vam intentar fer un sol so i diversos sons, el so anterior va desaparèixer. Per exemple, si teniu dues explosions en un joc, no és natural que el primer efecte sonor desaparegui quan la segona explosió genera un efecte sonor. Aquesta secció descriu com reproduir el mateix so diverses vegades l'un sobre l'altre.

Passos per reproduir àudio al mateix temps

Aquí, explicaré des del punt en què vaig crear un nou projecte, però si coneixeu Unity fins a cert punt, podeu retallar només les parts rellevants i memoritzar-les.

Aquesta vegada, l'efecte de so es reproduirà cada vegada que feu clic al botó. Creeu la vostra interfície d'usuari tal com es mostra. Els detalls són adequats i bons.

Afegiu un fitxer de so deixant-lo anar al vostre projecte.

Afegiu una font d'àudio a la jerarquia. En aquest cas, no configurareu el clip d'àudio directament a la font d'àudio.

Afegiu un script. ButtonEvent Deixeu el nom com .

El guió té aquest aspecte:

using UnityEngine;

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

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

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

AudioSource Penseu en això com una classe per controlar l'àudio, igual que els consells anteriors.

AudioClip és una classe que emmagatzema dades d'àudio. Podeu configurar fitxers d'àudio aquí.

AudioSource.PlayOneShot Si ho passeu com a argument al mètode, podeu reproduir les dades d'àudio AudioClip . L'àudio reproduït per aquest mètode es controla de manera independent. Si torneu a trucar a aquest mètode, es reproduirà com una veu nova per separat de l'anterior. Per tant, és possible tornar a reproduir el so cada vegada que es crida a aquest mètode.

Adjunteu l'script a EventSystem.

Per a "Font d'àudio", definiu la "Font d'àudio" afegida a la jerarquia.

A "Clip d'àudio", defineix un arxiu d'àudio del projecte.

Finalment, configureu el mètode a l'esdeveniment de clic del botó.

Executeu el joc i feu clic al botó. Crec que sonaran els efectes de so. A més, si torneu a fer clic al botó durant la reproducció, el nou so es reproduirà sense que desaparegui el so anterior.

AudioClip D'aquesta manera, ara és possible reproduir el mateix so l'un sobre l'altre reproduint l'àudio mitjançant . Això permet que el joc es jugui sense que el so anterior desaparegui de manera antinatural.

Desavantatges en jugar amb AudioClip

AudioClip Vaig poder reproduir l'àudio l'un sobre l'altre reproduint-lo mitjançant , però, per contra, es produeixen els següents desavantatges.

El so es fa sorollós

Com podeu veure si feu clic al botó contínuament, els sons se superposen i l'harmònic que es reprodueix es fa cada vegada més fort. Per exemple, si voleu reproduir un efecte de so quan un atac colpeja en una partida, Si es produeixen diversos cops al mateix temps sense prendre cap mesura, es poden reproduir a un volum anormal.