Example #1
0
        private void LoadFakeSubScene(PersistencySettings settings, Unity.Entities.Hash128 sceneGUID, int amountPerArchetype)
        {
            List <(PersistencyAuthoring, Entity)> toConvert = new List <(PersistencyAuthoring, Entity)>();

            toConvert.AddRange(CreateGameObjectsAndPrimaryEntities(amountPerArchetype, false, true, true));
            toConvert.AddRange(CreateGameObjectsAndPrimaryEntities(amountPerArchetype, false, false, true));
            toConvert.AddRange(CreateGameObjectsAndPrimaryEntities(amountPerArchetype, true, false, true));
            toConvert.AddRange(CreateGameObjectsAndPrimaryEntities(amountPerArchetype, true, false, false));
            toConvert.AddRange(CreateGameObjectsAndPrimaryEntities(amountPerArchetype, false, true, false));
            toConvert.AddRange(CreateGameObjectsAndPrimaryEntities(amountPerArchetype, true, true, true));

            PersistencyConversionSystem.Convert(toConvert, (settings, m_Manager.CreateEntity()), m_Manager, sceneGUID);

            foreach ((PersistencyAuthoring, Entity)pair in toConvert)
            {
                m_Manager.AddSharedComponentData(pair.Item2, new SceneSection()
                {
                    SceneGUID = sceneGUID, Section = 0
                });
                Object.DestroyImmediate(pair.Item1); // Destroying the gameobjects after conversion is necessary to be able to load multiple fake subscenes
            }

            // Fake the scene section entity, so the PersistentSceneSystem does it's work
            Entity sceneSectionEntity = m_Manager.CreateEntity();

            m_Manager.AddComponentData(sceneSectionEntity, new SceneSectionData()
            {
                SceneGUID       = sceneGUID,
                SubSectionIndex = 0,
            });
            m_Manager.AddComponentData(sceneSectionEntity, new RequestPersistentSceneSectionLoaded());
        }
Example #2
0
        public void TestBufferConversion([Values(0, 1, 2, 3, 60, 65, 400)] int total)
        {
            PersistencySettings settings = CreateTestSettings();

            List <(PersistencyAuthoring, Entity)> toConvert = CreateGameObjectsAndPrimaryEntities(total, false, false, true);

            PersistencyConversionSystem.Convert(toConvert, (settings, m_Manager.CreateEntity()), m_Manager, Hash128.Compute("TestPersistencyConversion"));

            VerifyConvertedEntities(toConvert.Select((tuple) => tuple.Item1).ToList());
            m_Manager.DestroyEntity(m_Manager.UniversalQuery);
        }
Example #3
0
        public void TestMissingTypeConversion([Values(0, 1, 2, 3, 60, 100)] int total)
        {
            PersistencySettings settings = CreateTestSettings();

            settings.AllPersistableTypeInfos.RemoveAt(0);

            List <(PersistencyAuthoring, Entity)> toConvert = new List <(PersistencyAuthoring, Entity)>();

            toConvert.AddRange(CreateGameObjectsAndPrimaryEntities(total, true, true, true));

            PersistencyConversionSystem.Convert(toConvert, (settings, m_Manager.CreateEntity()), m_Manager, Hash128.Compute("TestPersistencyConversion"));

            VerifyConvertedEntities(toConvert.Select((tuple) => tuple.Item1).ToList());
            m_Manager.DestroyEntity(m_Manager.UniversalQuery);
        }