AudioEmitter

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

AudioEmitter sendet Audiodatenströme in die Welt.Es bietet einen einzigen Eingang-Pin, der mit einem oder mehreren verbunden werden kann>.Alle Streams, die an einen AudioEmitter angeschlossen sind, werden von der Position des Senders in die Welt übertragen.Wenn der Elternteil ein Attachment , Camera oder PVInstance ist, wird die Weltposition des Elternteils verwendet.Wenn der Eltern nicht eine dieser Klassen ist, ist die AudioEmitter effektiv stumm.

AudioEmitters werden von AudioListeners gehört, um 3D-Spatialisierung zu implementieren.

Code-Beispiele

Playing one asset from multiple 3d locations at once

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()

Zusammenfassung

Eigenschaften

Methoden

Events

Eigenschaften

AngleAttenuation

BinaryString
Roblox-Sicherheit
Parallel lesen

AudioInteractionGroup

Parallel lesen

DistanceAttenuation

BinaryString
Roblox-Sicherheit
Parallel lesen
Parallel lesen

Methoden

GetAngleAttenuation


Rückgaben

GetAudibilityFor

Parameter

listener: AudioListener
Standardwert: ""

Rückgaben

GetConnectedWires

Instances

Parameter

pin: string
Standardwert: ""

Rückgaben

Instances

GetDistanceAttenuation


Rückgaben

GetInputPins


Rückgaben

GetInteractingListeners

Instances

Rückgaben

Instances

GetOutputPins


Rückgaben

SetAngleAttenuation

()

Parameter

curve: Dictionary
Standardwert: ""

Rückgaben

()

SetDistanceAttenuation

()

Parameter

curve: Dictionary
Standardwert: ""

Rückgaben

()

Code-Beispiele

Benutzerdefinierte Entfernungsreduzierung

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 -- Innerhalb einer Entfernung von 10 Klötzen hören die Empfänger diesen Emitter auf vollem Lautstärke
curve[100] = 0.4 -- Auf einer Entfernung von 100 Klötzen hören die Empfänger diesen Emitter bei 40% Lautstärke
curve[300] = 0 -- Auf jeder Entfernung weiter als 300 Klötze kann der Empfänger diesen Emitter nicht hören
emitter:SetDistanceAttenuation(curve)
-- Wiederhole die Roll-Off-Kurve aus der alten Voice-Implementierung
-- Die Standardstimme ohne die neue Audio-API verwendet einen quadratischen Rolloff von 7 bis 80 Klötzen
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

Events

WiringChanged

Parameter

connected: boolean
pin: string
wire: Wire
instance: Instance