docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Method AddComponentData

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

    Adds a component to a set of entities defined by the EntityQuery and sets the component of each entity in the query to the value in the component array.

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

    The EntityQuery defining the entities to add component to

    NativeArray<T> componentArray

    The NativeArray to add the components to.

    Type Parameters
    Name Description
    T

    The type of component to add.

    Remarks

    You can use this method to add a component to an Entity.

    Adding components changes an entity's archetype and results in the entity being moved to a different chunk. componentArray.Length must match entityQuery.ToEntityArray().Length.

    AddComponentData<T>(Entity, T)

    Adds a component to an entity and set the value of that component.

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

    The entity.

    T componentData

    The data to set.

    Returns
    Type Description
    bool

    Returns false if the entity alredy had the component.

    Type Parameters
    Name Description
    T

    The type of component.

    Remarks

    Can add any kind of component except chunk components, managed components, or shared components.

    Returns false if the entity already had the component. The component's data is set regardless.

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

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

    Exceptions
    Type Condition
    ArgumentException

    The Entity does not exist.

    AddComponentData<T>(SystemHandle, T)

    Adds a component to an entity associated with a system and sets the value of that component.

    Declaration
    public bool AddComponentData<T>(SystemHandle system, T componentData) where T : unmanaged, IComponentData
    Parameters
    Type Name Description
    SystemHandle system

    The system handle.

    T componentData

    The data to set.

    Returns
    Type Description
    bool

    Returns false if the entity already had the component.

    Type Parameters
    Name Description
    T

    The type of component.

    Remarks

    Can add any kind of component except chunk components, managed components, or shared components.

    Returns false if the entity already had the component. The component's data is set regardless.

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

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

    Exceptions
    Type Condition
    ArgumentException

    The Entity does not exist.

    In This Article
    Back to top
    Copyright © 2024 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)