-
Notifications
You must be signed in to change notification settings - Fork 8
PartitionCursor
Advanced — Internal component. World builders typically do not need this page.
Packages/tlp.udonvoiceutils/Runtime/Core/WorldAudio/PartitionCursor.cs
Drives the round-robin emitter update loop using partition-based time-slicing.
PartitionCursor manages how emitters are updated across frames. Emitters are divided into partitions (buckets) based on importance. High-priority emitters (close to listener) get their own partition and update every frame. Low-priority emitters share larger partitions and update less frequently.
Part of the WorldAudio subsystem. Used internally by WorldAudioController — world creators do not interact with this component directly.
Emitters are divided into partitions with exponential bucket sizes:
Partition 0: [emitter 0] ← size 1 (highest priority, updates every frame)
Partition 1: [emitter 1..4] ← size 4
Partition 2: [emitter 5..20] ← size 16 (lowest priority, updates less often)
Each frame, the cursor cycles through partitions and returns the next emitter that needs updating. This distributes the update budget across frames so not all emitters are updated simultaneously.
Do not directly control this component. It is managed by the WorldAudio system.
- PartitionState — holds partition configuration and initializes this component
- WorldAudioController — uses the cursor in its update loop
- 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