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
| Need | Use |
|---|---|
| Per-step points / time / binary scoring + optional session post | StepScoringAuxiliary |
| Pulses or continuous buzz on begin / complete / reset | VRHapticAuxiliary |
| Floating labels + button rim highlights on controllers | VRControllerInfoAuxiliary |
| Different UnityEvents for tutorial vs training vs assessment | StepModeAwareEvent |
| Radial / text feedback for valve, knob, gaze | AnalogFeedbackUI, ProgressFeedbackUI, ValveFeedbackUI (referenced from ValveStep / KnobStep / LookAtStep via SceneObjectReference) |
Auxiliary types (summary)
| Type | Role |
|---|---|
| StepScoringAuxiliary | Embedded ScoringConfig; OnStepUpdate refreshes time-based scores; FinalizeScore on complete/end; optional PostStepScoreAsync. |
| VRHapticAuxiliary | HapticImpulse[] via HapticImpulsePlayer on VRPlayerManager controller visuals (or scene fallback by name). Optional continuous haptics until complete. |
| VRControllerInfoAuxiliary | InfoDisplayUtility + VRInfoDisplay[] (hand, button, DynamicLocalization, optional prefab). Toggles controller appearance mode and SetButtonRim while active. |
| StepModeAwareEvent | beginExecutionModes / completeExecutionModes flags vs ScenarioDataConfig.ExecutionMode; invokes UnityEvent when mode matches. |
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.
Related
- 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.
