HasComponent
Checks whether an entity has a specific type of component.
Read time 2 minutesLast updated 2 days ago
Definition
- Type: Method
- Namespace: Unity.Entities
- Assembly: UnityEngine.EntitiesModule
HasComponent<T>(Entity)
Checks whether an entity has a specific type of component.
public static bool HasComponent<T>(Entity entity) where T : unmanaged, IComponentData
Parameters
The Entity object.
Returns
Type | Description |
|---|---|
| bool | True, if the specified entity has 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 with an idomatic foreach query, don't use this method to access the data of the current entity in the set. It's faster to change your query to avoid using 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.
Not working in IJobEntity, and Utility methods
HasComponent<T>(SystemHandle)
Checks whether an entity associated with a system has a specific type of component.
public static bool HasComponent<T>(SystemHandle systemHandle) where T : unmanaged, IComponentData
Parameters
The system handle.
Returns
Type | Description |
|---|---|
| bool | True, if the specified system owned entity has 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>.
Not working in IJobEntity, and Utility methods