AudioEmitter

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Échantillons de code

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

Résumé

Propriétés

Propriétés

AngleAttenuation

BinaryString
Sécurité Roblox
Lecture parallèle

AudioInteractionGroup

Lecture parallèle

DistanceAttenuation

BinaryString
Sécurité Roblox
Lecture parallèle
Lecture parallèle

Méthodes

GetAngleAttenuation


Retours

GetAudibilityFor

Paramètres

listener: AudioListener
Valeur par défaut : ""

Retours

GetConnectedWires

Instances

Paramètres

pin: string
Valeur par défaut : ""

Retours

Instances

GetDistanceAttenuation


Retours

GetInputPins


Retours

GetInteractingListeners

Instances

Retours

Instances

GetOutputPins


Retours

SetAngleAttenuation

()

Paramètres

curve: Dictionary
Valeur par défaut : ""

Retours

()

SetDistanceAttenuation

()

Paramètres

curve: Dictionary
Valeur par défaut : ""

Retours

()

Échantillons de code

Atténuation de distance personnalisée

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 -- À une distance de 10 studs, les écouteurs entendent cet émetteur à plein volume
curve[100] = 0.4 -- À une distance de 100 studs, les écouteurs entendent cet émetteur à 40 % de volume
curve[300] = 0 -- À n'importe quelle distance supérieure à 300 studs, les écouteurs ne peuvent pas entendre cet émetteur
emitter:SetDistanceAttenuation(curve)
-- Reproduire la courbe de réduction à partir de l'ancienne implémentation de la voix
-- La voix par défaut sans la nouvelle API audio utilise un recul quadratique allant de 7 à 80 studs
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

Évènements

WiringChanged

Paramètres

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