private static void GenerateNewProjectAssets( DirectoryInfo projectDirectory, string name, IWorldManager worldManager, IArchetypeManager archetypeManager, IPersistenceManager persistenceManager ) { // Create config entity var configEntity = worldManager.CreateEntity(archetypeManager.Config); worldManager.EntityManager.SetComponentData(configEntity, DisplayInfo.Default); // Generate main scene var cameraEntity = worldManager.CreateEntity("Camera", archetypeManager.Camera); worldManager.EntityManager.SetComponentData(cameraEntity, Camera2D.Default); worldManager.EntityManager.SetComponentData(cameraEntity, DomainCache.GetDefaultValue <Camera2D>()); worldManager.EntityManager.SetComponentData(cameraEntity, DomainCache.GetDefaultValue <Rotation>()); worldManager.EntityManager.SetComponentData(cameraEntity, DomainCache.GetDefaultValue <NonUniformScale>()); using (var entities = new NativeArray <Entity>(cameraEntity.AsArray(), Allocator.Temp)) { var scene = SceneManager.Create(worldManager.EntityManager, entities, Guid.NewGuid()); var sceneFile = projectDirectory.Combine("Scenes").GetFile("MainScene.scene"); sceneFile.Directory.EnsureExists(); persistenceManager.SaveScene(worldManager.EntityManager, scene, sceneFile.FullName); var sceneReference = new SceneReference { SceneGuid = scene.SceneGuid.Guid }; AddScene(worldManager.EntityManager, worldManager.GetConfigEntity(), sceneReference); AddStartupScene(worldManager.EntityManager, worldManager.GetConfigEntity(), sceneReference); } // Generate configuration scene using (var entities = new NativeArray <Entity>(configEntity.AsArray(), Allocator.Temp)) { var configurationScene = SceneManager.Create(worldManager.EntityManager, entities, ConfigurationScene.Guid); var configurationFile = projectDirectory.GetFile(name).ChangeExtension("configuration"); configurationFile.Directory.EnsureExists(); persistenceManager.SaveScene(worldManager.EntityManager, configurationScene, configurationFile.FullName); // Hack: remove scene guid/instance id and persistence id worldManager.EntityManager.RemoveComponent <SceneGuid>(configEntity); worldManager.EntityManager.RemoveComponent <SceneInstanceId>(configEntity); } }