Reproducir, pausar o detener un solo efecto de sonido
Entorno de verificación
- Windows
-
- Ventanas 11
- Unity Editor
-
- 2021.3.3F1
- Paquete del sistema de entrada
-
- 1.3.0
Requisitos previos para esta sugerencia
Los siguientes ajustes se han realizado de antemano como premisa para la descripción de este consejo.
Sobre el material incluido con la muestra
Los efectos de sonido se toman prestados de los siguientes sitios.
Acerca de los archivos de audio
Los siguientes formatos de archivo de audio se pueden reproducir con las funciones estándar de Unity: Por favor, prepárelo con anticipación porque se utilizará en estos consejos.
- WAV (.wav)
- OggVorbis (.ogg)
- MPEG capa 3 (.mp3)
Para obtener más información, consulta la documentación oficial de Unity.
Acerca de la reproducción de efectos de sonido
Hay varias formas de reproducir efectos de sonido, pero aquí queremos guiarlo a través de una forma sencilla de reproducirlos mientras usa las funciones estándar.
El contenido es organizar un botón y reproducir, pausar y detener haciendo clic en el botón. En un juego real, puedes implementar el mismo proceso que no sean botones.
Primero, coloque un botón para reproducir el efecto de sonido como se muestra en la figura.
Agregue el archivo de sonido preparado soltándolo en su proyecto.
A continuación, agregue "Fuente de audio" a la jerarquía.
Al seleccionar la fuente de audio que ha creado, el componente Fuente de audio tiene un clip de audio, en el que se coloca un archivo de audio del proyecto para configurarlo.
Por cierto, si comienzas el juego tal como está, el efecto de sonido que configuraste se reproducirá de repente. Esto se debe a que la opción "Jugar al inicio del juego" está marcada. Es poco probable que el efecto de sonido se reproduzca repentinamente, así que deje esta marca sin marcar.
A continuación, cree un script. SoundPlayer
Deje el nombre como .
El script tiene este aspecto:
using UnityEngine;
public class SoundPlayer : MonoBehaviour
{
[SerializeField] private AudioSource AudioSource;
public void OnClickPlay()
{
// オーディオを再生します
AudioSource.Play();
}
public void OnClickPause()
{
// オーディオを一時停止します
AudioSource.Pause();
}
public void OnClickStop()
{
// オーディオを停止します
AudioSource.Stop();
}
}
AudioSource
se establecerá más tarde desde el editor. Este AudioSource es el que tiene el efecto de sonido establecido anteriormente.
AudioSource
, , y métodos, para que pueda reproducir, pausar y Play
Pause
Stop
detener, respectivamente.
Puede adjuntar el script a la fuente de audio, pero en este caso lo adjuntará al EventSystem. Asegúrese de que el script se rellene con la fuente de audio que creó anteriormente.
Ahora asigne cada método al evento de clic de los tres botones.
Una vez que hayas terminado, ejecuta el juego y mira si se reproducen los efectos de sonido.
Play, pause y stop son términos de uso común, por lo que no es necesario escribirlos en detalle, pero creo que funcionan de la siguiente manera.
- Al hacer clic en el botón de reproducción, el efecto de sonido se reproduce solo una vez y se reproduce hasta el final.
- Durante la reproducción, haga clic en el botón de pausa para detener la reproducción del sonido
- Al hacer clic en el botón de reproducción mientras está en pausa, el sonido se reproduce desde la posición detenida.
- Haga clic en el botón Detener durante la reproducción para detener la reproducción del sonido
- Haga clic en el botón de reproducción mientras está detenido para jugar desde el principio
- Al hacer clic en el botón de parada durante la pausa, se liberará la posición en pausa y la próxima vez que juegues, será desde el principio.
- Si hace clic en el botón de reproducción durante la reproducción, el sonido que se está reproduciendo actualmente se detiene y se reproduce desde el principio.
Desventajas de usar solo AudioSource
Hay una solución alternativa, pero este Consejos tiene las siguientes desventajas. Cubriremos estas soluciones en otro consejo.
No se pueden reproducir dos o más sonidos iguales al mismo tiempo
Puede verificar esto presionando el botón de reproducción varias veces, pero el sonido anterior desaparece cuando reproduce un nuevo sonido. Hablando de desventajas, es una desventaja, pero por el contrario, si reproduce el mismo sonido uno encima del otro, el volumen será muy alto, por lo que es una ventaja en el sentido de que lo impide. Sin embargo, el sonido anterior seguirá desapareciendo, por lo que dependiendo del tipo de sonido, será antinatural.
Debe tener tantas fuentes de audio como tipos de sonidos para reproducir
Dado que solo se puede configurar un clip de audio en una AudioSource, debe proporcionar una AudioSource ya que tiene tantos sonidos como desee. También puede preparar solo una AudioSource y cambiar el clip de audio al reproducir un sonido diferente. No es natural porque el sonido anterior desaparece debido al problema de que dos o más del mismo sonido escrito antes no se pueden reproducir al mismo tiempo.