Skip to main content

Overview

The Set Object Visibility action shows or hides one or more objects in the scene without removing them. Hidden objects remain in memory and can be made visible again later. This differs from Remove Object, which permanently deletes an object from the scene.

When to Use

  • Progressive reveal: show hidden parts or components step by step
  • Before/after comparisons: toggle between different states of an object
  • Instruction markers: hide guidance elements after the learner understands
  • State transitions: visually update scenes without reloading them
  • Conditional content: show or hide objects based on learner choices or variables

Parameters

ParameterTypeRequiredDescription
Object(s)string or arrayYesSelect one or multiple objects from the scene hierarchy to show or hide.
VisiblebooleanYesSet to true to show the object(s), or false to hide them.

Key Behavior

  • Non-destructive: Hidden objects are not deleted; they can be made visible again.
  • Batch operations: You can select multiple objects and toggle their visibility together in a single action.
  • Collider status: Hidden objects typically no longer receive interactions (clicks, collisions) unless the engine specifically handles them.
  • Performance: Hiding objects is more efficient than removing them, especially if you plan to show them again later.

Practical Examples

Progressive Component Reveal

Scenario: A training demonstrates an assembly. At first, learners see the final assembled product. Then, components are hidden one by one to show the assembly sequence in reverse.
1
Initial state shows the complete assembly with all components visible.
2
Transition 1: Hide the top component.
  • Set Object Visibility: Object: top_cover, Visible: false
  • Learners now see the mechanism underneath.
3
Transition 2: Hide the next layer.
  • Set Object Visibility: Object: middle_assembly, Visible: false
  • Learners see the base and internal structure.
4
Transition 3: Hide the base.
  • Set Object Visibility: Object: base, Visible: false
  • Learners see only the core components.

Instruction Markers

Scenario: At the start of a task, glow highlights and text markers guide the learner. Once they interact with the component, hide the markers.
1
State TaskStart onEntry:
  1. Add Object: instruction_marker_1 (visual guide)
  2. Add Object: instruction_marker_2
  3. Highlight Object: target_component (with glow)
2
Transition triggered by learner clicking the target component:
  1. Set Object Visibility: Objects: [instruction_marker_1, instruction_marker_2], Visible: false
  2. Disable Highlight: target_component
3
Markers and highlights disappear once the learner engages, reducing visual clutter.

Before/After Comparison

Scenario: A training shows a dirty/corroded part, then reveals a clean version underneath.
1
State DirtyPart shows the corroded version.
  • Initially, clean_part is hidden.
2
When the learner applies cleaning action:
  • Set Object Visibility: Object: dirty_part, Visible: false
  • Set Object Visibility: Object: clean_part, Visible: true
3
The scene instantly shows the cleaned part without reloading the scene.

Multiple Objects Together

Scenario: A factory training has multiple safety warning signs. When entering a safe zone, hide all warning signs at once.
1
Transition to “Safe Zone” state:
  • Set Object Visibility: Objects: [warning_sign_1, warning_sign_2, warning_sign_3], Visible: false
2
All three warning signs disappear in one action, indicating the zone is now safe.

Conditional Visibility Based on Variables

Scenario: A training shows different instruction versions based on learner experience level.
1
In a state’s onEntry:
  • Set Object Visibility: Object: beginner_guide, Visible: (skillLevel == "beginner") (conditional expression)
  • Set Object Visibility: Object: advanced_tips, Visible: (skillLevel == "advanced")
2
Depending on the learner’s skill level variable, either the beginner or advanced version shows.
Use Set Object Visibility when you want to toggle the same object multiple times. Use Remove Object only when the object is truly no longer needed and won’t be shown again.
Hidden objects don’t render, so they have minimal performance impact. If you have many objects in your scene, hiding unused ones is an efficient way to improve performance.
If you hide an object that the learner is interacting with (e.g., clicking on), the interaction typically stops working. Always hide objects between interactions, not during them.