Class GameObjectConversionSystem | Entities | 0.16.0-preview.21
docs.unity3d.com
    Show / Hide Table of Contents

    Class GameObjectConversionSystem

    Derive from this class to create a system that can convert GameObjects and assets into Entities. Use one of the GameObject*Group system groups with [UpdateInGroup] to select a particular phase of conversion for the system (default if left unspecified is GameObjectConversionGroup).

    Inheritance
    Object
    ComponentSystemBase
    ComponentSystem
    GameObjectConversionSystem
    SomeComponentConversion
    Inherited Members
    ComponentSystem.PostUpdateCommands
    ComponentSystem.InitEntityQueryCache(Int32)
    ComponentSystem.Entities
    ComponentSystem.Update()
    ComponentSystem.OnUpdate()
    ComponentSystemBase.Enabled
    ComponentSystemBase.EntityQueries
    ComponentSystemBase.GlobalSystemVersion
    ComponentSystemBase.LastSystemVersion
    ComponentSystemBase.EntityManager
    ComponentSystemBase.World
    ComponentSystemBase.Time
    ComponentSystemBase.OnCreateForCompiler()
    ComponentSystemBase.OnCreate()
    ComponentSystemBase.OnStartRunning()
    ComponentSystemBase.OnStopRunning()
    ComponentSystemBase.OnDestroy()
    ComponentSystemBase.ExecutingSystemType
    ComponentSystemBase.ShouldRunSystem()
    ComponentSystemBase.GetComponentTypeHandle<T>(Boolean)
    ComponentSystemBase.GetDynamicComponentTypeHandle(ComponentType)
    ComponentSystemBase.GetBufferTypeHandle<T>(Boolean)
    ComponentSystemBase.GetSharedComponentTypeHandle<T>()
    ComponentSystemBase.GetEntityTypeHandle()
    ComponentSystemBase.GetComponentDataFromEntity<T>(Boolean)
    ComponentSystemBase.GetBufferFromEntity<T>(Boolean)
    ComponentSystemBase.RequireForUpdate(EntityQuery)
    ComponentSystemBase.RequireSingletonForUpdate<T>()
    ComponentSystemBase.HasSingleton<T>()
    ComponentSystemBase.GetSingleton<T>()
    ComponentSystemBase.SetSingleton<T>(T)
    ComponentSystemBase.GetSingletonEntity<T>()
    ComponentSystemBase.GetEntityQuery(ComponentType[])
    ComponentSystemBase.GetEntityQuery(NativeArray<ComponentType>)
    ComponentSystemBase.GetEntityQuery(EntityQueryDesc[])
    Namespace: Global Namespace
    Syntax
    [WorldSystemFilter(WorldSystemFilterFlags.GameObjectConversion | WorldSystemFilterFlags.HybridGameObjectConversion | WorldSystemFilterFlags.DotsRuntimeGameObjectConversion)]
    public abstract class GameObjectConversionSystem : ComponentSystem

    Properties

    BlobAssetStore

    Declaration
    public BlobAssetStore BlobAssetStore { get; }
    Property Value
    Type Description
    BlobAssetStore

    DstEntityManager

    Declaration
    public EntityManager DstEntityManager { get; }
    Property Value
    Type Description
    EntityManager

    Methods

    AddHybridComponent(Component)

    Declaration
    public void AddHybridComponent(Component component)
    Parameters
    Type Name Description
    Component component

    ConfigureEditorRenderData(Entity, GameObject, Boolean)

    Configures rendering data for picking in the editor.

    Declaration
    public void ConfigureEditorRenderData(Entity entity, GameObject pickableObject, bool hasGameObjectBasedRenderingRepresentation)
    Parameters
    Type Name Description
    Entity entity

    The entity to which we apply the configuration

    GameObject pickableObject

    The game object that should be picked when clicking on an entity

    Boolean hasGameObjectBasedRenderingRepresentation

    If there is a game object based rendering representation, like MeshRenderer this should be true. If the only way to render the object is through entities it should be false

    CreateAdditionalEntity(Component)

    Creates an additional entity in the destination world. The entity is associated with the GameObject of the given component. New entities should be created using this method since it ensures that the resulting entities have all data required for conversion correctly set up.

    Declaration
    public Entity CreateAdditionalEntity(Component component)
    Parameters
    Type Name Description
    Component component

    A component of the GameObject that the new entity will be associated with.

    Returns
    Type Description
    Entity

    The newly created entity.

    CreateAdditionalEntity(Component, NativeArray<Entity>)

    Creates multiple additional entities in the destination world. The entities are associated with the GameObject of the given component. New entities should be created using this method since it ensures that the resulting entities have all data required for conversion correctly set up.

    Declaration
    public void CreateAdditionalEntity(Component component, NativeArray<Entity> outEntities)
    Parameters
    Type Name Description
    Component component

    A component of the GameObject that the new entities will be associated with.

    NativeArray<Entity> outEntities

    This will be filled with the newly created entities.

    CreateAdditionalEntity(Object)

    Creates an additional entity in the destination world. The entity is associated with the given object. New entities should be created using this method since it ensures that the resulting entities have all data required for conversion correctly set up.

    Declaration
    public Entity CreateAdditionalEntity(Object uobject)
    Parameters
    Type Name Description
    Object uobject

    The object that the new entity will be associated with.

    Returns
    Type Description
    Entity

    The newly created entity.

    CreateAdditionalEntity(Object, NativeArray<Entity>)

    Creates multiple additional entities in the destination world. The entities are associated with the given object. New entities should be created using this method since it ensures that the resulting entities have all data required for conversion correctly set up.

    Declaration
    public void CreateAdditionalEntity(Object uobject, NativeArray<Entity> outEntities)
    Parameters
    Type Name Description
    Object uobject

    The object that the new entities will be associated with.

    NativeArray<Entity> outEntities

    This will be filled with the newly created entities.

    DeclareAssetDependency(GameObject, Object)

    Declares that the conversion result of the target GameObject depends on a source asset. Any changes to the source asset should trigger a reconversion of the dependent GameObject.

    Declaration
    public void DeclareAssetDependency(GameObject target, Object dependsOn)
    Parameters
    Type Name Description
    GameObject target

    The GameObject that has a dependency.

    Object dependsOn

    The Object that the target depends on. This must be an asset.

    DeclareDependency(Component, Component)

    Declares that the conversion result of the target Component depends on another component. Any changes to the dependency should trigger a reconversion of the dependent component.

    Declaration
    public void DeclareDependency(Component target, Component dependsOn)
    Parameters
    Type Name Description
    Component target

    The Component that has a dependency.

    Component dependsOn

    The Component that the target depends on.

    DeclareDependency(GameObject, GameObject)

    Declares that the conversion result of the target GameObject depends on another GameObject. Any changes to the dependency should trigger a reconversion of the dependent GameObject.

    Declaration
    public void DeclareDependency(GameObject target, GameObject dependsOn)
    Parameters
    Type Name Description
    GameObject target

    The GameObject that has a dependency.

    GameObject dependsOn

    The GameObject that the target depends on.

    DeclareLinkedEntityGroup(GameObject)

    Adds a LinkedEntityGroup to the primary Entity of this GameObject for all Entities that are created from this GameObject and its descendants. As a result, EntityManager.Instantiate and EntityManager.SetEnabled will work on those Entities as a group.

    Declaration
    public void DeclareLinkedEntityGroup(GameObject gameObject)
    Parameters
    Type Name Description
    GameObject gameObject

    DeclareReferencedAsset(Object)

    DeclareReferencedAsset includes the referenced asset in the conversion process. Once it has been declared, you can use GetPrimaryEntity to find the Entity for the asset. This Entity will also be tagged with the Asset component.

    Declaration
    public void DeclareReferencedAsset(Object asset)
    Parameters
    Type Name Description
    Object asset

    DeclareReferencedPrefab(GameObject)

    DeclareReferencedPrefab includes the referenced Prefab in the conversion process. Once it has been declared, you can use GetPrimaryEntity to find the Entity for the Prefab. If the object is a Prefab, all Entities in it will be made part of a LinkedEntityGroup, thus Instantiate will clone the whole group. All Entities in the Prefab will also be tagged with the Prefab component thus will not be picked up by an EntityQuery by default.

    Declaration
    public void DeclareReferencedPrefab(GameObject prefab)
    Parameters
    Type Name Description
    GameObject prefab

    ForkSettings(Byte)

    Extremely specialized use that is a (hopefully) temporary workaround our inability to generate multiple prefabs into the same World from the same source. Temporary because we want to switch to BlobAsset prefabs, but until then we need a way to avoid duplication of EntityGuids for these multiple prefabs. So we reserve space for a "namespace ID" in the EntityGuid, where if nonzero it is up to the developer to manage.

    Declaration
    public GameObjectConversionSettings ForkSettings(byte entityGuidNamespaceID)
    Parameters
    Type Name Description
    Byte entityGuidNamespaceID
    Returns
    Type Description
    GameObjectConversionSettings

    GetEntities(Component)

    Returns all entities in the destination world that are associated with the GameObject of the given component. This includes the primary entity associated with the object as well as all additional entities that were associated with this object. The first entity returned by the enumerator is the primary entity.

    Declaration
    public MultiListEnumerator<Entity> GetEntities(Component component)
    Parameters
    Type Name Description
    Component component

    The component whose GameObject to get the entities for.

    Returns
    Type Description
    MultiListEnumerator<Entity>

    An enumerator that returns the associated entities.

    GetEntities(Object)

    Returns all entities in the destination world that are associated with the given object. This includes the primary entity associated with the object as well as all additional entities that were associated with this object. The first entity returned by the enumerator is the primary entity.

    Declaration
    public MultiListEnumerator<Entity> GetEntities(Object uobject)
    Parameters
    Type Name Description
    Object uobject

    The object to get the entities for.

    Returns
    Type Description
    MultiListEnumerator<Entity>

    An enumerator that returns the associated entities.

    GetGuidForAssetExport(Object)

    Declaration
    public Hash128 GetGuidForAssetExport(Object asset)
    Parameters
    Type Name Description
    Object asset
    Returns
    Type Description
    Hash128

    GetPrimaryEntity(Component)

    Returns the primary entity associated with the given GameObject of the given component. This entity is from the destination world.

    Declaration
    public Entity GetPrimaryEntity(Component component)
    Parameters
    Type Name Description
    Component component

    The component for whose GameObject to get the primary entity for.

    Returns
    Type Description
    Entity

    The primary entity associated with the given entity. This is the null entity if there is no primary entity for the object.

    GetPrimaryEntity(Object)

    Returns the primary entity associated with the given object. This entity is from the destination world.

    Declaration
    public Entity GetPrimaryEntity(Object uobject)
    Parameters
    Type Name Description
    Object uobject

    The object to get the primary entity for.

    Returns
    Type Description
    Entity

    The primary entity associated with the given entity. This is the null entity if there is no primary entity for the object.

    GetSceneSectionEntity(Entity)

    Gets the entity representing the scene section of the entity passed in, the section entity is created if it doesn't already exist. Metadata components added to this section entity will be serialized into the entity scene header. At runtime these components will be added to the scene section entities when the scene is resolved. Only struct IComponentData components without BlobAssetReferences or Entity members are supported.

    Declaration
    public Entity GetSceneSectionEntity(Entity entity)
    Parameters
    Type Name Description
    Entity entity

    The entity for which to get the scene section entity

    Returns
    Type Description
    Entity

    The entity representing the scene section

    HasPrimaryEntity(Component)

    Returns true if the GameObject owning component is included in the set of converted objects.

    Declaration
    public bool HasPrimaryEntity(Component component)
    Parameters
    Type Name Description
    Component component
    Returns
    Type Description
    Boolean

    HasPrimaryEntity(Object)

    Returns true if the uobject is included in the set of converted objects.

    Declaration
    public bool HasPrimaryEntity(Object uobject)
    Parameters
    Type Name Description
    Object uobject
    Returns
    Type Description
    Boolean

    OnCreate()

    Declaration
    protected override void OnCreate()
    Overrides
    ComponentSystemBase.OnCreate()

    TryCreateAssetExportWriter(Object)

    Declaration
    public Stream TryCreateAssetExportWriter(Object asset)
    Parameters
    Type Name Description
    Object asset
    Returns
    Type Description
    Stream

    TryGetPrimaryEntity(Component)

    Declaration
    public Entity TryGetPrimaryEntity(Component component)
    Parameters
    Type Name Description
    Component component
    Returns
    Type Description
    Entity

    TryGetPrimaryEntity(Object)

    Declaration
    public Entity TryGetPrimaryEntity(Object uobject)
    Parameters
    Type Name Description
    Object uobject
    Returns
    Type Description
    Entity

    Extension Methods

    ComponentSystemBaseManagedComponentExtensions.HasSingleton<T>(ComponentSystemBase)
    ComponentSystemBaseManagedComponentExtensions.GetSingleton<T>(ComponentSystemBase)
    ComponentSystemBaseManagedComponentExtensions.SetSingleton<T>(ComponentSystemBase, T)
    JobForEachExtensions.GetEntityQueryForIJobForEach(ComponentSystemBase, Type)
    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