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); } }
public override void Load() { m_BindingsContext = new BindingContext(Session); m_Undo = Session.GetManager <IEditorUndoManager>(); m_Undo.UndoRedoBatchStarted += HandleUndoRedoBatchStarted; m_Undo.UndoRedoBatchEnded += HandleUndoRedoBatchEnded; m_WorldManager = Session.GetManager <IWorldManagerInternal>(); m_ArchetypeManager = Session.GetManager <IArchetypeManager>(); m_SceneManager = Session.GetManager <IEditorSceneManagerInternal>(); m_ComponentCache = Session.GetManager <UnityComponentCacheManager>(); Session.GetManager <IChangeManager>().RegisterChangeCallback(HandleChanges, int.MaxValue); UnityEditor.Undo.postprocessModifications += HandleInvertedChanges; EditorApplication.hierarchyChanged += HandleHierarchyChanges; m_TransferMap = new NativeHashMap <EntityGuid, EntityGuid>(1024, Allocator.Persistent); }
public ArchetypeController(IAzureTableStorage tableStorage, IArchetypeManager archetypeManager) { _tableStorage = tableStorage; _archetypeManager = archetypeManager; }