docs.unity.cn
    Show / Hide Table of Contents

    Method SetSharedComponentManaged

    SetSharedComponentManaged<T>(Entity, T)

    Sets the shared component of an entity.

    Declaration
    [ExcludeFromBurstCompatTesting("Accesses managed component store")]
    public void SetSharedComponentManaged<T>(Entity entity, T componentData)
        where T : struct, ISharedComponentData
    Parameters
    Type Name Description
    Entity entity

    The entity

    T componentData

    A shared component object containing the values to set.

    Type Parameters
    Name Description
    T

    The shared component type.

    Remarks

    Changing a shared component value of an entity results in the entity being moved to a different chunk. The entity moves to a chunk with other entities that have the same shared component values. A new chunk is created if no chunk with the same archetype and shared component values currently exists.

    Important: This method creates a sync point, which means that the EntityManager waits for all currently running jobs to complete before setting 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.

    SetSharedComponentManaged<T>(NativeArray<Entity>, T)

    Sets the shared component on an array of entities

    Declaration
    [ExcludeFromBurstCompatTesting("Accesses managed component store")]
    public void SetSharedComponentManaged<T>(NativeArray<Entity> entities, T componentData)
        where T : struct, ISharedComponentData
    Parameters
    Type Name Description
    NativeArray<Entity> entities

    The target entities

    T componentData

    A shared component object containing the values to set.

    Type Parameters
    Name Description
    T

    The shared component type.

    Remarks

    Changing a shared component value of an entity results in the entity being moved to a different chunk. The entity moves to a chunk with other entities that have the same shared component values. A new chunk is created if no chunk with the same archetype and shared component values currently exists.

    Important: This method creates a sync point, which means that the EntityManager waits for all currently running jobs to complete before setting 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.

    SetSharedComponentManaged<T>(EntityQuery, T)

    Sets the shared component of all entities in the query.

    Declaration
    [ExcludeFromBurstCompatTesting("Accesses managed component store")]
    public void SetSharedComponentManaged<T>(EntityQuery query, T componentData)
        where T : struct, ISharedComponentData
    Parameters
    Type Name Description
    EntityQuery query

    The query where matching entities will be assigned the shared component to.

    T componentData

    A shared component object containing the values to set.

    Type Parameters
    Name Description
    T

    The shared component type.

    Remarks

    The component data stays in the same chunk, the internal shared component data indices will be adjusted.

    Important: This method creates a sync point, which means that the EntityManager waits for all currently running jobs to complete before setting 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.

    Back to top Copyright © 2023 Unity Technologies — Terms of use
    Generated by DocFX
    on Thursday, August 10, 2023