-
Notifications
You must be signed in to change notification settings - Fork 8
FAQ
Yes. MeshColliders work for occlusion. Make sure they are on the Environment layer.
- Navigate to your
PlayerAudioControllerprefab in the scene - Find
Configurations/LocalConfigurationinside it - Change its settings — this holds the active settings
- When using the menu: apply the same settings to
Configurations/DefaultConfiguration- This allows resetting global settings back to your defaults
3.10.3 or higher. See Installation for details.
Yes. UdonSharp runs on both PC and Quest. Quest has stricter performance limits — keep MaxActiveSources low and tune partition counts for best results.
No. UVU is designed for exactly one PlayerAudioController per scene. FindPlayerAudioController() uses GameObject.Find() which returns the first match. Multiple controllers would conflict.
There is no hard player cap. Player updates are time-sliced via PlayerUpdateRate — the system processes a configurable number of players per frame rather than all at once. Increase the rate for faster updates at higher CPU cost.
No. The WorldAudio system only works with Unity-based video players (e.g., Unity VideoPlayer, VRC Unity Video Player). AVPro bypasses Unity's AudioSource pipeline and is invisible to WorldAudio.
Workaround: Use Unity-based video players, or add a separate AudioSource on the same GameObject for manual control. See WorldAudio Limitations for details.
Not with AudioSource.Play()/Stop() directly — WorldAudio manages play/pause/culling state based on importance. Direct manipulation conflicts with culling and importance sorting.
Use AudioSourceStateController methods (Play(), Pause(), Stop()) on the same GameObject instead. Or, if you need full manual control, do not attach OccludedEmitter to that AudioSource.
See WorldAudio Limitations for details.
In Packages/tlp.udonvoiceutils/Runtime/Prefabs/Examples:
| Prefab | Purpose |
|---|---|
| VoiceOverrideTriggerZone | Zone-based voice override |
| VoiceOverrideRoom | Room with enter/exit |
| PickupMicrophone | Mic pickup item |
| InteractMicrophone | Microphone variants (toggle, hold) |
| AudioSource_Controlled_by_WorldAudioController | AudioSource managed by WorldAudio |
| Bathroom, ConcertHall, Pool | Environment examples |
| OpenDoorExample | Door interaction example |
See How to Set Up Voice Channels for setup guide.
- Architecture
- Occlusion
- Voice Directionality
- Height Scaling
- Audio Processing Pipeline
- Private Voice Channels
- WorldAudio Subsystem
- WorldAudio Limitations
- Set Up Occlusion
- Set Up Voice Channels
- Set Up Reverb
- Set Up Height Scaling
- Set Up Voice Directionality
- Set Up Microphone
- Set Up WorldAudio Emitters
- Enable Debug Mode
- Tutorial #1: Custom Voice Override Zone
- Tutorial #2: Private Voice Channels
- Tutorial #3: Setting Up World Audio
- PlayerAudioController
- PlayerAudioOverride
- PlayerAudioOverrideList
- PlayerAudioView
- PlayerAudioConfigurationModel
- SyncedPlayerAudioConfigurationModel
- VoiceUtils
- IgnoredPlayers
- AudioObstacle
- DefaultPlayerOcclusion
- NullPlayerOcclusion
- PlayerOcclusionStrategy
- Privacy Channel Reference
- AdjustableGain
- DynamicPrivacy
- PickupMicrophone — MVC microphone system with MicModel/MicController/MicView
- VoiceOverrideTriggerZone
- VoiceOverrideRoom