docs.unity3d.com
    Show / Hide Table of Contents

    Method AddComponentData

    AddComponentData<T>(EntityQuery, NativeArray<T>)

    Adds a component to a set of entities defines by the EntityQuery and sets the component of each entity in the query to the value in the component array. componentArray.Length must match entityQuery.ToEntityArray().Length.

    Declaration
    public void AddComponentData<T>(EntityQuery entityQuery, NativeArray<T> componentArray)
        where T : struct, IComponentData
    Parameters
    Type Name Description
    EntityQuery entityQuery

    THe EntityQuery defining the entities to add component to

    NativeArray<T> componentArray
    Type Parameters
    Name Description
    T

    AddComponentData<T>(Entity, T)

    Adds a component to an entity and set the value of that component. Returns true if the component was added, false if the entity already had the component. (The component's data is set either way.)

    Declaration
    public bool AddComponentData<T>(Entity entity, T componentData)
        where T : struct, IComponentData
    Parameters
    Type Name Description
    Entity entity

    The entity.

    T componentData

    The data to set.

    Returns
    Type Description
    Boolean
    Type Parameters
    Name Description
    T

    The type of component.

    Remarks

    Adding a component changes an entity's archetype and results in the entity being moved to a different chunk.

    Important: This function creates a sync point, which means that the EntityManager waits for all currently running Jobs to complete before adding the component and no additional Jobs can start before the function is finished. A sync point can cause a drop in performance because the ECS framework may not be able to make use of the processing power of all available cores.

    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023