SoundService

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

No creable
Servicio

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'.

Sistema de sonido dinámico

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

Métodos

Propiedades

AmbientReverb

Leer paralelo

CharacterSoundsUseNewApi

Seguridad del plugin
Leer paralelo

DefaultListenerLocation

Seguridad del plugin
Leer paralelo

DistanceFactor

Leer paralelo

DopplerScale

Leer paralelo

RespectFilteringEnabled

Leer paralelo

RolloffScale

Leer paralelo

VolumetricAudio

No programable
Leer paralelo

Métodos

GetListener


Devuelve

OpenAttenuationCurveEditor

()
Seguridad del plugin

Parámetros

selectedCurveObjects: Instances
Valor predeterminado: ""

Devuelve

()

OpenDirectionalCurveEditor

()
Seguridad del plugin

Parámetros

selectedCurveObjects: Instances
Valor predeterminado: ""

Devuelve

()

PlayLocalSound

()

Parámetros

sound: Instance
Valor predeterminado: ""

Devuelve

()

SetListener

()

Parámetros

listenerType: Enum.ListenerType
Valor predeterminado: ""
listener: Tuple
Valor predeterminado: ""

Devuelve

()

Eventos