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()); }
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); }
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); }