コード例 #1
0
        // ** CONFIGURATION **

        public GameObjectConversionSettings(World destinationWorld, ConversionFlags conversionFlags, BlobAssetStore blobAssetStore = null)
        {
            DestinationWorld = destinationWorld;
            ConversionFlags  = conversionFlags;
            if (blobAssetStore != null)
            {
                BlobAssetStore = blobAssetStore;
            }
        }
コード例 #2
0
    public GameObjectConversionMappingSystem(World DstWorld, Hash128 sceneGUID, ConversionFlags conversionFlags)
    {
        m_DstWorld        = DstWorld;
        m_SceneGUID       = sceneGUID;
        m_ConversionFlags = conversionFlags;
        m_DstManager      = DstWorld.EntityManager;

        m_Entities      = new Entity[128];
        m_Next          = new int[128];
        m_EntitiesCount = 0;
    }
コード例 #3
0
    public void PrepareIncrementalConversion(IEnumerable <GameObject> gameObjects, ConversionFlags flags)
    {
        if (!IsLiveLink)
        {
            throw new ArgumentException("Incremental conversion can only be used when the conversion world was specifically created for it");
        }

        if (m_Settings.ConversionFlags != flags)
        {
            throw new ArgumentException("Conversion flags don't match");
        }

        if (!EntityManager.UniversalQuery.IsEmptyIgnoreFilter)
        {
            throw new ArgumentException("Conversion world is expected to be empty");
        }

        m_DstLinkedEntityGroups.Clear();

        HashSet <GameObject> dependencies;

        using (new ProfilerMarker("CalculateDependencies").Auto())
        {
            dependencies = CalculateDependencies(gameObjects);
            if (dependencies == null)
            {
                throw new ArgumentException("Missing dependencies");
            }
        }

        using (new ProfilerMarker($"ClearIncrementalConversion ({dependencies.Count} GameObjects)").Auto())
        {
            foreach (var go in dependencies)
            {
                ClearIncrementalConversion(go);
            }
        }

        using (new ProfilerMarker($"CreateGameObjectEntities ({dependencies.Count} GameObjects)").Auto())
        {
            foreach (var go in dependencies)
            {
                CreateGameObjectEntity(EntityManager, go, this);
            }
        }

        //Debug.Log($"Incremental processing {EntityManager.UniversalQuery.CalculateEntityCount()}");
    }
コード例 #4
0
 public GameObjectConversionSettings(World destinationWorld, Hash128 sceneGUID, ConversionFlags conversionFlags)
 {
     DestinationWorld = destinationWorld;
     SceneGUID        = sceneGUID;
     ConversionFlags  = conversionFlags;
 }
コード例 #5
0
        // ** CONFIGURATION **

        public GameObjectConversionSettings(World destinationWorld, ConversionFlags conversionFlags)
        {
            DestinationWorld = destinationWorld;
            ConversionFlags  = conversionFlags;
        }