SoundService

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Oluşturulamaz
Hizmet

Deneyimde Sounds'un nasıl çaldığına dair çeşitli yönleri belirleyen bir hizmettir. SoundService genellikle SoundGroups'u depolamak için de kullanılır, ancak grupların çalışması için bu zorunlu değildir.

SoundService özellikleri arasında AmbientReverb, DistanceFactor, DopplerScale ve RolloffScale gibi seçenekler bulunmaktadır ve bunlar deneyimdeki tüm Sounds'un nasıl çaldığını değiştirmek için kullanılabilir. Ayrıca SetListener() fonksiyonu, seslerin duyulduğu noktayı ayarlamanıza olanak tanır.

Kod Örnekleri

Bu örnekteki kod, bir LocalScriptten çalıştırıldığında, oyuncu CollectionService kullanarak etiketlenmiş bir BasePart içinde olduğunda SoundService'in SoundService.AmbientReverb özelliğini değiştirecektir.

Etiketleri ve reverb türlerini eklemek veya kaldırmak için 'reverbTags' tabloundaki girişleri değiştirin.

Dinamik Reverb Sistemi

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,
}
-- parçaları topla ve etiketlerine göre gruplandır
local parts = {}
for reverbTag, reverbType in pairs(reverbTags) do
for _, part in pairs(CollectionService:GetTagged(reverbTag)) do
parts[part] = reverbType
end
end
-- bir pozisyonun bir parçanın hacmi içinde olup olmadığını kontrol etme işlevi
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
-- varsayılan olarak reverb yok
local newReverbType = Enum.ReverbType.NoReverb
if character and character.PrimaryPart then
local position = character.PrimaryPart.Position
-- tüm indekslenmiş parçaları geç
for part, type in pairs(parts) do
-- karakterin onların içinde olup olmadığını kontrol et
if positionInPart(part, position) then
-- eğer öyleyse, o reverb türünü seç
newReverbType = type
break
end
end
end
-- reverb türü değiştiyse ayarla
if newReverbType ~= reverbType then
SoundService.AmbientReverb = newReverbType
reverbType = newReverbType
end
end

Özet

Özellikler

Yöntemler

Özellikler

AmbientReverb

Paralel oku

CharacterSoundsUseNewApi

Eklenti Güvenliği
Paralel oku

DefaultListenerLocation

Eklenti Güvenliği
Paralel oku

DistanceFactor

Paralel oku

DopplerScale

Paralel oku

RespectFilteringEnabled

Paralel oku

RolloffScale

Paralel oku

VolumetricAudio

Betiklenemez
Paralel oku

Yöntemler

GetListener


Dönüşler

OpenAttenuationCurveEditor

()
Eklenti Güvenliği

Parametreler

selectedCurveObjects: Instances

Dönüşler

()

OpenDirectionalCurveEditor

()
Eklenti Güvenliği

Parametreler

selectedCurveObjects: Instances

Dönüşler

()

PlayLocalSound

()

Parametreler

sound: Instance

Dönüşler

()

SetListener

()

Parametreler

listenerType: Enum.ListenerType
listener: Tuple

Dönüşler

()

Olaylar