
Audio Optimization for Mobile: The Complete Unity Guide
July 18, 2026
Unity Mobile Audio Latency Bug: Delayed Sound Effects (Full Guide & Fixes)
July 21, 2026Unity’s Data‑Oriented Technology Stack (DOTS) is commonly associated with physics, particles, or large‑scale crowds — but its real power goes far beyond that.
In fact, DOTS can dramatically improve systems that traditionally rely on slow, object‑oriented patterns, including:
- Audio processing
- AI decision‑making
- Sensor‑based interactions
This guide explores how to use DOTS for these *non‑standard*, high‑performance systems, complete with architecture breakdowns and code examples.
1. Why Use DOTS for Non‑Traditional Systems?
Non‑traditional systems benefit from DOTS when they require:
- Large‑scale parallel processing
- High‑frequency updates (per‑frame or sub‑frame)
- Deterministic behavior
- Low‑latency computation
- Mass queries/statistical updates
While built‑in Unity components handle single objects well, they struggle with thousands of audio probes, AI agents, or environment sensors.
DOTS solves this through:
- Entity Component System (ECS)
- Jobs System
- Burst Compilation
2. DOTS for Audio: High‑Performance Event Processing
Although Unity does not natively support full DOTS‑based audio playback, DOTS is incredibly effective for:
- Audio event scheduling
- Large‑scale spatial audio queries
- Propagation calculations (distance, attenuation, occlusion)
- Mass audio triggering systems
Example: Parallelized Distance Attenuation
public struct AudioSourceData : IComponentData {
public float3 Position;
public float BaseVolume;
}
public struct ListenerData : IComponentData {
public float3 Position;
}
[BurstCompile]
public partial struct AudioAttenuationJob : IJobEntity {
public ListenerData Listener;
void Execute(ref AudioSourceData src) {
float dist = math.distance(src.Position, Listener.Position);
src.BaseVolume = math.saturate(1f / (1f + dist * 0.2f));
}
}
Here DOTS calculates volume levels for thousands of audio emitters in parallel — something impossible with classic AudioSource components.
3. DOTS for AI Systems
AI is one of the best candidates for DOTS due to repetitive logic, large populations, and pattern‑heavy updates.
AI Systems That Benefit from DOTS:
- Flocking / Swarm AI
- Utility‑based decision systems
- Threat analysis / visibility checks
- Pathfinding queries at scale
- Sensor‑driven behavior selection
Example: Utility Score AI with Burst
public struct AIUtility : IComponentData {
public float Hunger;
public float Danger;
public float Curiosity;
public int SelectedAction;
}
[BurstCompile]
public partial struct UtilityAIJob : IJobEntity {
void Execute(ref AIUtility ai) {
float eatScore = ai.Hunger * 1.2f;
float fleeScore = ai.Danger * 2f;
float exploreScore = ai.Curiosity * 0.8f;
if (fleeScore > eatScore && fleeScore > exploreScore)
ai.SelectedAction = 0; // flee
else if (eatScore > exploreScore)
ai.SelectedAction = 1; // eat
else
ai.SelectedAction = 2; // explore
}
}
This type of AI is extremely fast under Burst — allowing tens of thousands of agents to update each frame.
4. DOTS for Sensors (Triggers, Fields, Probes)
Traditional Unity physics components are expensive when used for:
- Proximity detection
- Environmental sensing
- Heatmaps / threat zones
- AI perception fields
DOTS makes sensor systems lightweight, predictable, and scalable.
Example: Proximity Sensor System
public struct Sensor : IComponentData {
public float Radius;
public bool IsTriggered;
}
public struct Position : IComponentData {
public float3 Value;
}
[BurstCompile]
public partial struct SensorJob : IJobEntity {
[ReadOnly] public NativeArray<float3> Targets;
void Execute(ref Sensor sensor, in Position pos) {
sensor.IsTriggered = false;
for (int i = 0; i < Targets.Length; i++) {
if (math.distance(pos.Value, Targets[i]) < sensor.Radius) {
sensor.IsTriggered = true;
break;
}
}
}
}
This job allows thousands of sensors to detect thousands of targets per frame with near‑zero overhead.
5. Combining Audio + AI + Sensors in DOTS
The real power emerges when combining these systems.
- Sensors detect player → AI reacts → DOTS schedules audio events
- Audio triggers influence AI emotional states
- Environmental sensors modify audio attenuation
- AI noise events propagate through sensor grids
This architecture creates incredibly dynamic worlds at scale.
6. When You Should NOT Use DOTS
Avoid DOTS when your system:
- Has fewer than ~100 entities
- Requires complex MonoBehaviour integration
- Uses Unity features that are not DOTS‑compatible (UI, AudioSource, Animation)
Conclusion
Unity DOTS isn’t only for physics and particles — its real strength appears when applied to unconventional systems such as audio processing, AI evaluation, and sensor simulation.
By leveraging Burst compilation and massive parallelism, you can build high‑performance gameplay systems that scale to tens or hundreds of thousands of entities.
Mastering these techniques puts your game in a performance tier far beyond standard Unity workflows.










