Skip to content

PartitionCursor

Guribo edited this page Jul 11, 2026 · 2 revisions

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.

Overview

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. Managed by PartitionState (lifecycle) and used by WorldAudioController (per-frame iteration). World creators do not interact with this component directly.

How It Works

Emitters are divided into partitions with exponential bucket sizes. Sizes shown are for the default configuration (3 partitions, growth factor 4, 21 emitters). Actual sizes scale with emitter count.

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.

Important Limitation

Do not directly control this component. It is managed by the WorldAudio system.

Related

Clone this wiki locally