SoundService
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
Un servicio que determina varios aspectos de cómo Sounds juegan en la experiencia. SoundService también se usa a menudo para almacenar SoundGroups, aunque esto no es obligatorio para que los grupos funcionen.
SoundService propiedades como AmbientReverb , DistanceFactor , DopplerScale y RolloffScale se pueden usar para cambiar cómo todos los Sounds juegan en la experiencia, y la función SetListener() te permite establecer la posición desde la que se escuchan los sonidos.
Muestras de código
El código en esta muestra, cuando se ejecuta desde un LocalScript , cambiará la propiedad SoundService.AmbientReverb de SoundService cuando el jugador esté dentro de una etiqueta BasePart marcada con CollectionService .
Para agregar o eliminar etiquetas y tipos de sonido, cambia las entradas en la tabla 'reverbTags'.
local Players = game:GetService("Players")
local CollectionService = game:GetService("CollectionService")
local SoundService = game:GetService("SoundService")
local localPlayer = Players.LocalPlayer
local reverbTags = {
["reverb_Cave"] = Enum.ReverbType.Cave,
}
-- recoge piezas y agrúpalas por etiqueta
local parts = {}
for reverbTag, reverbType in pairs(reverbTags) do
for _, part in pairs(CollectionService:GetTagged(reverbTag)) do
parts[part] = reverbType
end
end
-- función para verificar si una posición está dentro de los límites de una parte
local function positionInPart(part, position)
local extents = part.Size / 2
local offset = part.CFrame:PointToObjectSpace(position)
return offset.x < extents.x and offset.y < extents.y and offset.z < extents.z
end
local reverbType = SoundService.AmbientReverb
while true do
task.wait()
if not localPlayer then
return
end
local character = localPlayer.Character
-- predeterminado a sin sonido de rebote
local newReverbType = Enum.ReverbType.NoReverb
if character and character.PrimaryPart then
local position = character.PrimaryPart.Position
-- pasar por todas las partes indexadas
for part, type in pairs(parts) do
-- ver si el personaje está dentro de ellos
if positionInPart(part, position) then
-- si es así, elige ese tipo de sonido
newReverbType = type
break
end
end
end
-- establecer el tipo de sonido si ha cambiado
if newReverbType ~= reverbType then
SoundService.AmbientReverb = newReverbType
reverbType = newReverbType
end
end
Resumen
Propiedades
El preajuste de ambiente de sonido utilizado por SoundService .
Determina dónde (si hay algún lugar) colocar un AudioListener por defecto.
El número de tachuelas que se consideran un metro por SoundService cuando se calcula la atenuación de volumen de Sounds padroneado a un BasePart o Attachment .
Grado al que se varía la inclinación de un Sound debido al efecto Doppler.
Establece si Sound la reproducción desde un cliente se replicará al servidor.
Establece qué tan rápido se atenúa el volumen Sound .
Métodos
Devuelve el tipo de escuchador actual SoundService y lo que se establece como escuchador.
Reproduce un Sound localmente, lo que significa que el sonido solo será escuchado por el cliente que llame a este método, independientemente de dónde se le haya asignado.
Establece el escuchador para el SoundService.