Pelajari
Kelas Engine
AudioEmitter

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.


Contoh Kode
Memainkan satu aset dari beberapa lokasi 3d sekaligus
local part1: BasePart = workspace.Speakers.Left
local part2: BasePart = workspace.Speakers.Right
local player: AudioPlayer = workspace.AudioPlayer
local leftEmitter = Instance.new("AudioEmitter")
local rightEmitter = Instance.new("AudioEmitter")
local toLeft = Instance.new("Wire")
local toRight = Instance.new("Wire")
leftEmitter.Parent = part1
rightEmitter.Parent = part2
toLeft.Parent = leftEmitter
toLeft.SourceInstance = player
toLeft.TargetInstance = leftEmitter
toRight.Parent = rightEmitter
toRight.SourceInstance = player
toRight.TargetInstance = rightEmitter
player:Play()

Referensi API
Properti
AcousticSimulationEnabled
Baca Paralel
Kemampuan: Audio
AudioEmitter.AcousticSimulationEnabled:boolean

AngleAttenuation
Keamanan Roblox
Baca Paralel
Kemampuan: Audio
AudioEmitter.AngleAttenuation:Flyweight

AudioInteractionGroup
Baca Paralel
Kemampuan: Audio
AudioEmitter.AudioInteractionGroup:string

DistanceAttenuation
Keamanan Roblox
Baca Paralel
Kemampuan: Audio
AudioEmitter.DistanceAttenuation:Flyweight

PositionInstance
Baca Paralel
Kemampuan: Audio
AudioEmitter.PositionInstance:Instance

PositionType
Baca Paralel
Kemampuan: Audio
AudioEmitter.PositionType:Enum.EmitterPositionType

SimulationFidelity
Tidak digunakan lagi

Metode
GetAngleAttenuation
Kemampuan: Audio
AudioEmitter:GetAngleAttenuation():Dictionary
Memberikan nilai

GetAudibilityFor
Kemampuan: Audio
AudioEmitter:GetAudibilityFor(listener:AudioListener):number
Parameter
listener:AudioListener
Memberikan nilai

GetConnectedWires
Kemampuan: Audio
AudioEmitter:GetConnectedWires(pin:string):{Wire}
Parameter
pin:string
Memberikan nilai

GetDistanceAttenuation
Kemampuan: Audio
AudioEmitter:GetDistanceAttenuation():Dictionary
Memberikan nilai

GetInputPins
Kemampuan: Audio
AudioEmitter:GetInputPins():{any}
Memberikan nilai

GetInteractingListeners
Kemampuan: Audio
AudioEmitter:GetInteractingListeners():{AudioListener}
Memberikan nilai

GetOutputPins
Kemampuan: Audio
AudioEmitter:GetOutputPins():{any}
Memberikan nilai

SetAngleAttenuation
Kemampuan: Audio
AudioEmitter:SetAngleAttenuation(curve:Dictionary):()
Parameter
Memberikan nilai
()

SetDistanceAttenuation
Kemampuan: Audio
AudioEmitter:SetDistanceAttenuation(curve:Dictionary):()
Parameter
Memberikan nilai
()
Contoh Kode
Atenuasi Jarak Kustom
local Players = game:GetService("Players")
local emitterPart = Instance.new("Part")
emitterPart.Anchored = true
emitterPart.Position = Vector3.new(0, 0, 0)
emitterPart.Parent = workspace
local emitter: AudioEmitter = Instance.new("AudioEmitter")
emitter.Parent = emitterPart
local curve = {}
curve[10] = 1 -- Dalam jarak 10 stud, pendengar mendengar emitter ini dengan volume penuh
curve[100] = 0.4 -- Pada jarak 100 stud, pendengar mendengar emitter ini dengan volume 40%
curve[300] = 0 -- Pada jarak lebih dari 300 stud, pendengar tidak dapat mendengar emitter ini
emitter:SetDistanceAttenuation(curve)
-- Replikasi kurva rolloff dari implementasi suara lama
-- Suara default tanpa API audio baru menggunakan rolloff kuadratik dari 7 hingga 80 stud
local MIN_DISTANCE = 7
local MAX_DISTANCE = 80
local CURVE_STEP_SIZE = 2
local voiceCurve = {}
for i = MIN_DISTANCE, MAX_DISTANCE, CURVE_STEP_SIZE do
voiceCurve[i] = ((i - MIN_DISTANCE) - (MAX_DISTANCE - MIN_DISTANCE)) ^ 2 / (MAX_DISTANCE - MIN_DISTANCE) ^ 2
end
voiceCurve[MAX_DISTANCE] = 0
local function setVoiceCurve(character)
local voiceEmitter: AudioEmitter = character:WaitForChild("AudioEmitter")
voiceEmitter:SetDistanceAttenuation(voiceCurve)
end
for _, player in Players:GetPlayers() do
if player.Character then
setVoiceCurve(player.Character)
end
player.CharacterAdded:Connect(setVoiceCurve)
end

Acara
WiringChanged
Kemampuan: Audio
AudioEmitter.WiringChanged(
connected:boolean, pin:string, wire:Wire, instance:Instance
Parameter
connected:boolean
pin:string
wire:Wire
instance:Instance

©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.