Skip to content

Speakers & shaped audio

A plain 3D sound in Unity is omnidirectional — equally loud in every direction, only quieter with distance. Real speakers project: a horn throws sound forward in a cone, a PA fills a room, and both sound muffled when you're off to the side or behind them. The Speaker component gives you that shape.

Add a Speaker

Put a Speaker on any object (Add Component ▸ Social Scape/Speaker), assign a clip, and pick a field shape. Design the field right in the scene — the gizmos show it, and selecting the Speaker gives you drag handles for the range and cone angle. Aim a cone by rotating the object (it fires down the object's forward / +Z).

Shape What it does Use it for
Sphere Omni — audible in a sphere out to Range. (Same as a normal 3D sound.) Ambience, a boombox
Cone Directional — full volume within the Inner Angle, fading to Outer Volume by the Outer Angle. A horn, a stage PA, a directional announcement
Box Fills an oriented Box Size, soft at the walls (Edge Falloff). A PA covering a room / zone

Origin Offset moves where the sound emanates from (the tip of the cone / centre of the box), so you can place the Speaker object anywhere and still emit from the grille.

Muffle

Leave Muffle Off Axis on and the sound is low-passed (dulled) as you move off-axis or outside the shape — so a directional speaker reads as projecting away from you, not merely turned down. That's what sells "realistic speaker."

How it layers with volume

A Speaker's loudness is a clean stack, so nothing fights:

what you hear  =  Base Volume  ×  shape (cone/box)  ×  Speaker.SetVolume (script)  ×  your per-speaker slider

…and the World audio channel (Settings) sits on top of all speakers at once.

Unity still positions the sound (you hear where it is); the shape only decides how loud in each direction.

Voice speakers & voice zones

Route player voice through the world — a radio, a PA, a team channel — with two no-code components.

Voice Speaker (a radio / PA prop)

Add Voice Speaker (Social Scape/Voice Speaker) to a prop and set a Channel; anyone talking on that channel comes out of this prop, positioned in 3D with its own falloff and (optionally) the same directional cone/box shape as a Speaker. Turn on Radio Filter for the band-pass telephone / walkie-talkie timbre.

Field What it does
channelId The voice channel this prop plays (can't be proximity — that's reserved for real mouths).
maxDistance How far the prop's voice carries (m). Default 20.
radioFilter Band-pass the voice for a radio / PA timbre.
field Optional directional shape (Cone / Box).

Voice Speaker is the no-code form of Voice.RouteToSource(channelId, gameObject). To also hear the talker's real mouth (not only through the radio), the channel must be dual (below).

Voice Zone (a room channel)

Add Voice Zone (Social Scape/Voice Zone) — a geometric area (Box / Sphere, no collider needed) that puts everyone inside onto a voice channel: a team radio, a party chat, a stage broadcast, a global announcer.

Field What it does
channelId The channel players in the zone join.
kind Team / Party / Broadcast / Global.
mode TalkAndListen or ListenOnly.
dual Also carry talkers on proximity, so their real mouth is heard too (pairs with a Voice Speaker prop).
priority When zones overlap, the highest wins.
shape / size / radius The Box or Sphere area.

Team radio

A Voice Zone (channelId = "radio-red", kind = Team, dual on) over the red team's area, plus a Voice Speaker tuned to radio-red (with radioFilter) on each player's handheld radio prop — teammates hear each other both in person and over the radio.

Video Speakers project a screen's audio and can be made directional the same way — see Video players.

Wire your own volume slider

You build the volume UI yourself — the same way you'd wire any control (a play button, a seek bar). Two server-authoritative calls do the work, so a change is in sync for everyone in the instance:

  • A video's audioVideo.SetVolume("screen", v) sets the video's volume, and every Video Speaker connected to that screen moves together (they all play the one video). So a single slider controls the whole screen's sound, no matter how many speakers you've placed around it:
// UI Slider (0..1) → the video's volume — all of its speakers at once
void OnVideoVolume(float v) {
    Video.SetVolume("screen", v);
}
  • A standalone SpeakerSpeaker.SetVolume("bell", v) does the same for a Speaker's clip.

Mix them under one slider — one handler can drive a video and any independent Speakers together, your choice of which sources it covers:

void OnMasterVolume(float v) {
    Video.SetVolume("screen", v);     // the screen + all of its speakers
    Speaker.SetVolume("ambient-1", v);
    Speaker.SetVolume("ambient-2", v);
}

The directional shape on each speaker still applies on top — the slider sets the level, each speaker keeps its cone/box. See Speaker API and Video players.

Per-player volume

Every Speaker and Video Speaker exposes a per-player volume — a listener can turn an individual speaker or video up or down for themselves, on top of the global Audio channel sliders in Settings. It's personal and never affects what anyone else hears.

Limits

To keep worlds comfortable, a Speaker's Range is capped (see Rules & limits); an over-range speaker is clamped when your world loads (you'll see a warning at upload). Speakers also count toward the world audio-source cap.

Design the cone visually

Select the Speaker and drag the scene handles: the ring at the end sets Range, the dots on the cone rim set the Inner and Outer angles, and rotating the object aims it. The filled gizmo previews the field as you go.


Component class names (for scripts and search): SSSpeaker, AudioField.