Documentation

Unity Engine


Unity Engine


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

entity

The Entity object.

Returns

Type

Description

boolTrue, 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

systemHandle

The system handle.

Returns

Type

Description

boolTrue, 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