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
GameObjectConversionSystem
Syntax
[WorldSystemFilter(WorldSystemFilterFlags.GameObjectConversion | WorldSystemFilterFlags.HybridGameObjectConversion | WorldSystemFilterFlags.DotsRuntimeGameObjectConversion)]
public abstract class GameObjectConversionSystem : ComponentSystem
Properties
BlobAssetStore
Declaration
public BlobAssetStore BlobAssetStore { get; }
Property Value
DstEntityManager
Declaration
public EntityManager DstEntityManager { get; }
Property Value
Methods
AddHybridComponent(Component)
Declaration
public void AddHybridComponent(Component component)
Parameters
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)
Declaration
public Entity CreateAdditionalEntity(Component component)
Parameters
Returns
CreateAdditionalEntity(Object)
Declaration
public Entity CreateAdditionalEntity(Object uobject)
Parameters
Type |
Name |
Description |
Object |
uobject |
|
Returns
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
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
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
GetEntities(Component)
Declaration
public MultiListEnumerator<Entity> GetEntities(Component component)
Parameters
Returns
GetEntities(Object)
Declaration
public MultiListEnumerator<Entity> GetEntities(Object uobject)
Parameters
Type |
Name |
Description |
Object |
uobject |
|
Returns
GetGuidForAssetExport(Object)
Declaration
public Guid GetGuidForAssetExport(Object asset)
Parameters
Type |
Name |
Description |
Object |
asset |
|
Returns
GetPrimaryEntity(Component)
Declaration
public Entity GetPrimaryEntity(Component component)
Parameters
Returns
GetPrimaryEntity(Object)
Declaration
public Entity GetPrimaryEntity(Object uobject)
Parameters
Type |
Name |
Description |
Object |
uobject |
|
Returns
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
Returns
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
OnCreate()
Declaration
protected override void OnCreate()
Overrides
TryCreateAssetExportWriter(Object)
Declaration
public Stream TryCreateAssetExportWriter(Object asset)
Parameters
Type |
Name |
Description |
Object |
asset |
|
Returns
TryGetPrimaryEntity(Component)
Declaration
public Entity TryGetPrimaryEntity(Component component)
Parameters
Returns
TryGetPrimaryEntity(Object)
Declaration
public Entity TryGetPrimaryEntity(Object uobject)
Parameters
Type |
Name |
Description |
Object |
uobject |
|
Returns
Extension Methods