docs.unity.cn
    Show / Hide Table of Contents

    Add components to an entity

    To add components to an entity, use the EntityManager for the world that the entity is in. You can add components to an individual entity, or to several entities at the same time.

    Adding a component to an entity is a structural change which means that the entity moves to a different chunk. This means that you can't directly add components to an entity from a job. Instead, you must use an EntityCommandBuffer to record your intention to add components later.

    Add a component to a single entity

    The following code sample creates a new entity then adds a component to the entity from the main thread.

    public partial struct AddComponentToSingleEntitySystemExample : ISystem
    {
        public void OnCreate(ref SystemState state)
        {
            var entity = state.EntityManager.CreateEntity();
            state.EntityManager.AddComponent<Rotation>(entity);
        }
    
        }
    

    Add a component to multiple entities

    The following code sample gets every entity with an attached ComponentA component and adds a ComponentB component to them from the main thread.

    struct ComponentA : IComponentData {}
    struct ComponentB : IComponentData {}
    public partial struct AddComponentToMultipleEntitiesSystemExample : ISystem
    {
        public void OnCreate(ref SystemState state)
        {
            var query = state.GetEntityQuery(typeof(ComponentA));
            state.EntityManager.AddComponent<ComponentB>(query);
        }
    }
    

    Additional resources

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