AudioEmitter

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

AudioEmitter emituje sygnały dźwiękowe w świat. Dostarcza pojedynczy

AudioEmitters słyszalne przez AudioListeners w celu wdrożenia 3D lokalizacji przestrzennej.

Przykłady kodu

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

Podsumowanie

Właściwości

Metody

Właściwości

AngleAttenuation

BinaryString
Zabezpieczenia na platformie Roblox
Odczyt równoległy

Reprezentuje krętę o wysokości nad kątem, która wpływa na to, jak głośno słyszy się AudioListener , AudioEmitter , LookVector i 2>Class.Audio2>, w zależności od kąta między nimi a 5>Datatype.CFrame.LookVector|LookVector5> związanym z 8>Class.Audio8>.

Ta właściwość jest wewnętrzna i nie może być dostępna przez skrypcity; istnieje, aby wspierać replikację. Zobacz SetAngleAttenuation() dla szczegółów użycia.

AudioInteractionGroup

Odczyt równoległy

Jeśli AudioEmitter i AudioListener dzielą się grupainterakcji, to słuchacz jest w stanie usłyszeć emittera.

DistanceAttenuation

BinaryString
Zabezpieczenia na platformie Roblox
Odczyt równoległy

Reprezentuje kurwę zasięgu głośności, która wpływa na to, jak głośno słucha się AudioListener , w zależności od dystansu między nimi.

Ta właściwość jest wewnętrzna i nie może być dostępna przez skrypcity; istnieje, aby wspierać replikację. Zobacz SetDistanceAttenuation() dla szczegółów użycia.

Metody

GetAngleAttenuation

Zwraca kąt zmiany tabeli na wolumen. Klucze są liczbami pomiędzy 0 i 180 (włącznie), podczas gdy wartości są liczbami pomiędzy 0 i 1> 11> (włącznie), opisując, jak zmniejsza się wolumen w zależności od kierunku. Ta metoda zwr


Zwroty

Kąt mapowania stolika do głośnika, jak opisano powyżej.

GetConnectedWires

Instances

Zwraca Wires, które są połączone z określonym przypinać. AudioEmitter ma jeden przypinać"wejścia".

Parametry

pin: string

Zwroty

Instances

GetDistanceAttenuation

Zwraca odległość mapowania tabeli do głośności. Klucze są liczbami większymi lub równymi 0, podczas gdy wartości są liczbami pomiędzy 0 i 1 (włącznie), opisującymi, jak głośność zalewa się w zależności od dystansu. Ten metod weryfikuje pustą tabelę, jeśli domyślna kurwa zalewania jest używana.


Zwroty

GetInteractingListeners

Instances

Zwroty

Instances

SetAngleAttenuation

void

Ustawia zakręt kąta nad kątem, który wpływa na to, jak głośno słyszy się AudioListener , AudioEmitter , oparty na kącie między nimi a LookVector związanym z 1> Class.Audio1> .

Zakręt jest przedstawiony przez klucze tabeli mapujące wartości na głośnik. Klucze są oczekiwane być unikalnymi liczbami pomiędzy 0 i 180 (włącznie), podczas gdy wartości są oczekiwane być liczbami pomiędzy 0 i 1> 11> (włącz

Głośnik klasy Class.AudioEmitter z perspektywy Class.AudioListen przy użyciu kąta AudioEmitter określa poziom głośności dla punktów na kręcące

Ten poziom zostanie pomnożony przez wszystkie inne łagodniejsze zakręty (w tym te z odbiornika AudioListener ) aby uzyskać ostateczną dostępność.

Jeśli tabela jest pusta lub nil, AudioEmitter domyślnie używa korektora kąta z konstytucyjną wartością Volume 1.

Parametry

curve: Dictionary

Zwroty

void

SetDistanceAttenuation

void

Ustawia kurwę zasięgu głośności, która wpływa na to, jak głośno słucha się AudioListener , w zależności od dystansu między nimi.

Zakręt jest przedstawiony przez klucze dystansu mapy tabeli do wartości głosu. Klucze są oczekiwane być unikalnymi liczbami większymi niż lub równymi 0, podczas gdy wartości są oczekiwane być liczbami pomiędzy 0 i 1 (łącznie). Tabel w zawierających do 400 pary kluczy-wartości.

Głośnik klasy Class.AudioEmitter z perspektywy Class.AudioListen jest determinowany przez liniowe interpolowanie między poziomami głośności dla punktów na krzywej, które maj

Ten poziom zostanie pomnożony przez wszystkie inne łagodniejsze zakręty (w tym te z odbiornika AudioListener ) aby uzyskać ostateczną dostępność.

Jeśli tabela jest pusta lub nil, AudioEmitter domyślnie używa długości skurczu określonej przez prawo odwrotnego kваadratu.

Parametry

curve: Dictionary

Zwroty

void

Przykłady kodu

Custom Distance Attenuation

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 -- Within a distance of 10 studs, listeners hear this emitter at full volume
curve[100] = 0.4 -- At a distance of 100 studs, listeners hear this emitter at 40% volume
curve[300] = 0 -- At any distance farther than 300 studs, listeners cannot hear this emitter
emitter:SetDistanceAttenuation(curve)
-- Replicate the rolloff curve from the old voice implementation
-- Default voice without the new audio API uses quadratic rolloff ranging from 7 to 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

Zdarzenia