Method HasBuffer
HasBuffer<T>(Entity)
Checks whether an entity has a dynamic buffer of a specific IBufferElementData type.
Declaration
protected bool HasBuffer<T>(Entity entity) where T : struct, IBufferElementData
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 IBufferElementData type. |
Remarks
Always returns false for an entity that has been destroyed.
Use this method to check if another entity has a dynamic buffer of a given IBufferElementData type using its Entity object.
When iterating over a set of entities via Entities.ForEach, 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 Entities.ForEach construction to handle each combination of optional and non-optional components.
When you call this method on the main thread, it invokes HasBuffer<T>(Entity).
(An Entities.ForEach function invoked with Run()
executes on the main thread.) When you call this method
inside a job scheduled using Entities.ForEach, this method gets replaced with component access methods
through BufferLookup<T>.
In both cases, this lookup method results in a slower, indirect memory access. When possible, organize your data to minimize the need for indirect lookups.