Assets/_MolcaSDK/_VR/Scripts/Scenario/Steps/Auxiliary/Related UI (not under Auxiliary/):
AnalogFeedbackUI, ProgressFeedbackUI, ValveFeedbackUI under Scenario/Steps/ (and a second ValveFeedbackUI under Scripts/UI/ for alternate wiring — search the project).
All StepAuxiliary types are added on each Step via the SerializeReference / Auxiliaries list in the Inspector (menu paths come from [AuxiliaryMenu(...)] on each class).
When to use
StepInfo (task list + copy)
StepInfo is a StepAuxiliary (same Auxiliaries list on Step) that holds the human-facing title and related copy for a step.
- Scenario UI — in-scenario HUD often includes a task / checklist UI: it walks the active steps (via the running SequenceController / ScenarioActivity) and shows each step’s
StepInfotitle as a row so trainees see what to do next and what’s already done. - Modals — steps such as Popup step read
StepInfofor title/body text on confirmation dialogs. - Subclasses — you can derive from
StepInfoto add fields (extra labels, icons, CSV-imported metadata). CSV Step Importer supports a customStepInfoTypeandRegisterExtraColumnMappingso imported steps get your derived auxiliary. Scenario UI and importers that cast to your type can show the extra data; the stock task list typically relies on the base title (and localization) fromStepInfo.
StepInfo through Auxiliaries → the menu entry your SDK exposes (often under a VR / Scenario or Info path). Keep titles localized (e.g. DynamicLocalization) when the task list and modals use the same keys as the rest of the UI.
Auxiliary types (summary)
Code
Add an auxiliary in the Editor — expand the Step component → Auxiliaries → add VR/Haptic Feedback, VR/Controller Info, VR/Scenario/Mode Event, or Scoring/Step Scoring. No code required for haptics or mode events if you wire impulses / UnityEvents in the Inspector. Runtime: drive binary / accuracy scoring (e.g. from a custom script listening to your own validation):AnalogFeedbackUI.Setup(IAnalogInteraction, target, start) then Show() / Hide(); ProgressFeedbackUI.SetProgress(0..1) from gaze dwell.
Troubleshooting
- Auxiliary never runs — Confirm it lives on the same Step instance the SequenceController activates; check IsEnabled on the auxiliary instance if your version exposes it (StepModeAwareEvent bails when disabled).
- VRHapticAuxiliary: no channels — Add
HapticImpulsePlayertoVRControllerVisualchildren or ensure controller objects include left/right in the name for fallback search. - VRControllerInfoAuxiliary: no popups — Place
InfoDisplayUtilityin the scene;localizedInfomust not be disabled;GetButtonTransformmust exist for the chosenVRControllerVisual.ButtonType. - Mode event never fires —
ScenarioDataConfig.GetInstance()must return config with expectedExecutionMode; masks must include that mode in begin / complete flags. - Analog UI blank — Call
SetupbeforeShow;IAnalogInteractionmust be the live valve/knob; radial Image must use Filled + Radial per inspector tooltips. - Task list shows wrong or empty titles — Each listed step needs a
StepInfoauxiliary with title (and localization) set; confirm Scenario UI references the same SequenceController / activity the player is training on.
Related
- Scenario UI — completion + in-scenario HUD (task list uses
StepInfotitles) - Step scoring auxiliary
- ScoringConfig
- Step (base class)
- VR player manager
- Scenario Data Config — execution mode
Unity Editor
Step Inspector — Auxiliaries list with + to add StepScoringAuxiliary.

Step auxiliaries on a VR Step