Inherited Visibility (Hide All Children)

Existing Functionality
As it stands, we can control the visibility of each entity individually. We can do this from the editor, and we can change this with the API at runtime. Changing the visibility of one entity will never effect the visibility of another.

The Problem
It becomes difficult or impossible to show/hide sets of entities in any of these cases:

  • There are a large amount of entities to show/hide
  • There are a varying number of entities to show/hide
  • The set contains temporary lights or effects
    And The Big One…
  • The set contains entities which are being hidden by another script or package

Proposed Functionality
All entities get equipped with a new boolean property “treeVisible”. When the “treeVisible” property is set to false, it will hide itself and all of its descendants (without changing their existing “visible” property). When the “treeVisible” property is set to true, the entities will exhibit their usual behavior.
The “treeVisible” property would mimic the way that Unity and CSS handle visibility.

There is also a request to handle collision in the same way here.