public static void ConvertAndInjectOriginal(GameObject root) { using (var gameObjectWorld = new GameObjectConversionSettings(World.Active, GameObjectConversionUtility.ConversionFlags.AssignName).CreateConversionWorld()) { GameObjectEntity.AddToEntityManager(gameObjectWorld.EntityManager, root); GameObjectConversionUtility.Convert(gameObjectWorld); var entity = GameObjectConversionUtility.GameObjectToConvertedEntity(gameObjectWorld, root); InjectOriginalComponents(World.Active.EntityManager, entity, root.transform); } }
public static void ConvertAndInjectOriginal(GameObject root) { var gameObjectWorld = GameObjectConversionUtility.CreateConversionWorld(World.Active, default(Hash128), 0); GameObjectEntity.AddToEntityManager(gameObjectWorld.EntityManager, root); GameObjectConversionUtility.Convert(gameObjectWorld, World.Active); var entity = GameObjectConversionUtility.GameObjectToConvertedEntity(gameObjectWorld, root); InjectOriginalComponents(World.Active.EntityManager, entity, root.transform); gameObjectWorld.Dispose(); }
public static bool InjectOriginalComponents(World srcGameObjectWorld, EntityManager simulationWorld, Transform transform) { var convert = transform.GetComponent <ConvertToEntity>(); if (convert != null && convert.ConversionMode == Mode.ConvertAndInjectGameObject) { var entity = GameObjectConversionUtility.GameObjectToConvertedEntity(srcGameObjectWorld, transform.gameObject); InjectOriginalComponents(simulationWorld, entity, transform); transform.parent = null; return(true); } for (int i = 0; i < transform.childCount;) { if (!InjectOriginalComponents(srcGameObjectWorld, simulationWorld, transform.GetChild(i))) { i++; } } return(false); }