docs.unity.cn
    Show / Hide Table of Contents

    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
    Boolean

    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.

    Back to top Copyright © 2023 Unity Technologies — Terms of use
    Generated by DocFX
    on Wednesday, June 21, 2023