Inherited Collision

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

The Problem
It becomes difficult or impossible to manage the collision properties of a set of entities in any of these cases:

  • There are a large amount of entities in the set
  • There are a varying number of entities in the set
  • Not all entities in the set use the same collision preset
    And The Big One…
  • The set contains entities whose collisions are being being toggled by another script or package

Proposed Functionality
All entities get equipped with two new boolean properties:

  • treeWorldCollision
    When the “treeWorldCollision” property is set to false, it will disable non-player collisions on itself and all of its descendants (without changing their existing collision properties). When the “treeWorldCollision” property is set to true, the entities will collide with other non-player entities based on their existing collision properties.
  • treePlayerCollision
    When the “treePlayerCollision” property is set to false, it will disable player collisions on itself and all of its descendants (without changing their existing collision properties). When the “treePlayerCollision” property is set to true, the entities will collide with playerss based on their existing collision properties.

These “tree[X]Collision” properties would be more inline with the way Unity handles collision.

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