SoundService
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
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.
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
SoundService tarafından kullanılan ortam sesi çevre ön tanımı.
AudioListener'ı varsayılan olarak nereye (varsa) yerleştireceğini belirler.
SoundService tarafından BasePart veya Attachment'a bağlı olan Sounds'un ses hacmi azalmasını hesaplarken bir metre olarak kabul edilen stud sayısı.
Doppler etkisi nedeniyle Sound pitch'inin ne ölçüde değiştiği.
Bir istemciden Sound oynatımının sunucuya kopyalanıp kopyalanmayacağını ayarlar.
Sound ses hacminin ne hızda azalacağını ayarlar.
Yöntemler
Geçerli SoundService dinleyici türünü ve dinleyici olarak ayarlananı döndürür.
Bir Sound'u yerel olarak çalar, yani ses yalnızca bu yöntemi çağıran istemci tarafından duyulacaktır, bağlı olduğu yerin neresi olduğu önemli değildir.
SoundService için dinleyiciyi ayarlar.