Method HasComponent
HasComponent<T>(Entity)
Checks whether an entity has a specific type of component.
Declaration
public static bool HasComponent<T>(Entity entity) where T : unmanaged, IComponentData
Parameters
Type | Name | Description |
---|---|---|
Entity | entity | The Entity object. |
Returns
Type | Description |
---|---|
bool | True, if the specified entity has the component. |
Type Parameters
Name | Description |
---|---|
T | The data type of the component. |
Remarks
Always returns false for an entity that has been destroyed.
Use this method to check if another entity has a given type of component using its Entity object. For example, if you have a component that contains an Entity field, you can check whether the referenced entity has a specific type of component using this method. (Entities in the set always have required components, so you don’t need to check for them.)
When iterating over a set of entities via IJobEntity or Query<T1>(), avoid using this method with the current entity in the set. It is generally faster to change your entity query methods to avoid optional components; this may require a different construction to handle each combination of optional and non-optional components.
When you call this method this method gets replaced with component access methods through a cached ComponentLookup<T>.
This lookup method results in a slower, indirect memory access. When possible, organize your data to minimize the need for indirect lookups.
HasComponent<T>(SystemHandle)
Checks whether an entity associated with a system has a specific type of component.
Declaration
public static bool HasComponent<T>(SystemHandle systemHandle) where T : unmanaged, IComponentData
Parameters
Type | Name | Description |
---|---|---|
SystemHandle | systemHandle | The system handle. |
Returns
Type | Description |
---|---|
bool | True, if the specified system owned entity has the component. |
Type Parameters
Name | Description |
---|---|
T | The data type of the component. |
Remarks
Always returns false for an system that has been destroyed.
Use this method to check if another system owned entity has a given type of component using its SystemHandle object.
When you call this method this method gets replaced with component access methods through a cached ComponentLookup<T>.