Bind Entities
Using [BindEntity] attribute allows your components to stablish dependencies with Entities in your scene.
The search is made using the Entity.Tag propert:
// Binding with the first Entity in the Scene tagged with "Player"
[BindEntity(tag: "Player")]
private Entity player;
// Search all Entities with "Item" tag...
[BindComponent(tag: "Item")]
private List<Entity> itemList;
Note
[BindEntity] can only be used inside Components. In other case the binding cannot be resolved
[BindEntity] Properties
This attribute offers several ways to customize:
source (default BindEntitySource.Scene
)
This property indicates where the component or components will be searched. There are several values:
Source | Description |
---|---|
Scene (default) |
The Entity is searched in the entire Scene. It iterates over all entities in the scene. |
Children |
Search the Entity in its descendant entities, excluding the owner entity |
ChildrenSkipOwner |
Search the Entity in its descendant entities, not including the owner entity |
Parents |
Search the Entity in the ascendant entities, including the owner entity |
ParentsSkipOwner |
Search the Entity in its ascendant entities, not including the owner entity |
A brief example:
public class MyComponent : Component
{
// Binding with the first Entity in the Scene tagged with "Player"
[BindEntity(tag: "Player")] // source: Scene is default value
private Entity player;
// ...
}
isRequired (default true
)
If the value is true
the dependency is required to be resolved, in other case, the current Component won't be attached.
The IsRequired value has the same functionality than [BindComponent] (see [Bind Components](bind_components.md for further details)).
isRecursive (default true
)
If set to true
the search will include all descendants (or ascendants) in the hierarchy; otherwise, the search will only include the direct descendants.
tag (default null
)
The Entities will be filtered by its tag value.