BatchTransformPipelineManager¶
Singleton manager that batches all active transform pipeline processes into a single Burst-compiled parallel job per frame.
Namespace: Octoputs.Transforming.Batch
Inherits: MonoBehaviour
Requires: JUNGLE_JOBS_ENABLED define (auto-set when com.unity.burst is present)
Overview¶
BatchTransformPipelineManager collects every live run of BatchTransformOperation and executes them together using Unity's Job System and Burst. Each frame it reads the moved transforms, asks each run's destination (any ITransformTarget, evaluated on the main thread) for this frame's pose, runs the modifier job, writes the poses back (kinematic bodies through MovePosition), and processes completion events. One authored operation can own many runs, one per subject, so a belt zone or a detector can drive every member through the same operation. The manager auto-creates as a singleton with DontDestroyOnLoad. Uses swap-with-last for O(1) unregistration.
This component has no serialized fields — it is accessed entirely through its static Instance property and runtime registration API. Application code rarely calls it directly; BatchTransformOperation is the normal consumer.
Static API¶
| Member | Description |
|---|---|
Instance |
Static accessor that auto-creates the singleton on first access. |
Public Methods¶
| Method | Description |
|---|---|
int ActiveCount |
Live runs registered this frame. |
void Unregister(int slotIndex) |
Removes a pipeline by slot index using swap-with-last for O(1) removal. |
void UpdateEntry(int slotIndex, BatchPipelineEntry entry) |
Replaces the per-slot entry struct — used by operations to push updated modifier or pause state between frames. |
BatchPipelineEntry GetEntry(int slotIndex) |
Reads the current entry struct for a slot. Returns default when the index is out of range. |