private void BuildMenuActions() { EditorGUI.BeginDisabledGroup(menus.Count <= 0 || layers.Count <= 0); GUILayout.Label("Actions", EditorStyles.boldLabel); //Actions EditorGUILayout.BeginHorizontal(); if (GUILayout.Toggle(cursorState == CursorState.Remove, initialIcons[1], "Button")) { if (cursorState != CursorState.Remove) { cursorState = CursorState.Remove; objMenu = null; DeactivateMenus(); } } if (GUILayout.Toggle(cursorState == CursorState.Drag, initialIcons[0], "Button")) { if (cursorState != CursorState.Drag) { cursorState = CursorState.Drag; objMenu = null; DeactivateMenus(); } } EditorGUILayout.EndHorizontal(); EditorGUI.EndDisabledGroup(); }
public void LoadData() { GameObject[] layers, boundings; string serializedMenus; string[] stringMenus; EditorObjectsMenu obj; Layer newLayer; Vector2 eleGridPos; GameObject child; if (selectedObjects == null) { selectedObjects = new List <EditorObject>(); } if (EditorPrefs.HasKey(PlayerSettings.productName + "-GridSize")) { gridSize = EditorPrefs.GetInt(PlayerSettings.productName + "-GridSize"); } if (EditorPrefs.HasKey(PlayerSettings.productName + "-ShowGrid")) { showGrid = EditorPrefs.GetBool(PlayerSettings.productName + "-ShowGrid"); } //Deserialize layers layers = GameObject.FindGameObjectsWithTag(Layer.LAYER_TAG); //if (this.layers == null) this.layers = new List <Layer>(); foreach (GameObject l in layers) { newLayer = new Layer(l.name, l); for (int i = 0; i < l.transform.childCount; i++) { child = l.transform.GetChild(i).gameObject; eleGridPos = Helper.ConvertVectorToGrid(new Vector2(child.transform.position.x, -child.transform.position.y), gridSize / 100f, gridSize / 100f); newLayer.AddSceneElement(new EditorObject(child, (int)eleGridPos.x, (int)eleGridPos.y, newLayer)); } this.layers.Add(newLayer); } //Deserialize menus if (EditorPrefs.HasKey(PlayerSettings.productName + "-Menus")) { //if (menus == null) menus = new List <EditorObjectsMenu>(); serializedMenus = EditorPrefs.GetString(PlayerSettings.productName + "-Menus"); stringMenus = serializedMenus.Split(';'); foreach (string s in stringMenus) { if (s != "") { obj = new EditorObjectsMenu(); obj.Deserialize(s); obj.LoadPrefabs(); menus.Add(obj); } } } if (EditorPrefs.HasKey(PlayerSettings.productName + "-CursorColor")) { cursorColor = FromStringToColor(EditorPrefs.GetString(PlayerSettings.productName + "-CursorColor")); } if (EditorPrefs.HasKey(PlayerSettings.productName + "-GridColor")) { gridColor = FromStringToColor(EditorPrefs.GetString(PlayerSettings.productName + "-GridColor")); } if (EditorPrefs.HasKey(PlayerSettings.productName + "-SelectColor")) { selectColor = FromStringToColor(EditorPrefs.GetString(PlayerSettings.productName + "-SelectColor")); } if (EditorPrefs.HasKey(PlayerSettings.productName + "-SnapState")) { snapState = (SnapState)System.Enum.Parse(typeof(SnapState), EditorPrefs.GetString(PlayerSettings.productName + "-SnapState")); } LoadInitialIcons(); //Boundings //boundings = GameObject.Find(TILE_BOUNDING_CONTAINER_NAME); //foreach (GameObject o in boundings) // o.GetComponent<TileBounding>().LinkAssociatedObjects(); loaded = true; }
private void BuildMenuObjects() { int curSel; List <EditorObjectsMenu> removedMenus; EditorGUI.BeginDisabledGroup(layers.Count <= 0); GUILayout.Label("GAME OBJECTS", EditorStyles.boldLabel); //Add menu button if (GUILayout.Button("Add Menu")) { menus.Add(new EditorObjectsMenu()); } removedMenus = new List <EditorObjectsMenu>(); //GUILayout.BeginVertical(); gameobjectsScrollPos = GUILayout.BeginScrollView(gameobjectsScrollPos, false, true); //Menus foreach (EditorObjectsMenu m in menus) { //Title GUILayout.Label("Menu: " + m.folder, EditorStyles.boldLabel); //m.name = EditorGUILayout.TextField("Title", m.name); //Columns m.columns = EditorGUILayout.IntField("Columns", m.columns); //Folder's location EditorGUILayout.BeginHorizontal(); m.folder = EditorGUILayout.TextField("Folder Name", m.folder); if (GUILayout.Button("Load")) { m.LoadPrefabs(); } EditorGUILayout.EndHorizontal(); //Load elements if (m.tiles != null && m.tiles.Length > 0 && m.columns > 0) { curSel = GUILayout.SelectionGrid(m.selGridInt, m.tiles, m.columns, GUILayout.Width(position.width - 20), GUILayout.Height(100)); if (curSel != m.selGridInt) { m.selGridInt = curSel; objMenu = m; cursorState = CursorState.Add; DeactivateMenus(); } } //Remove menu if (GUILayout.Button("Remove")) { removedMenus.Add(m); } } GUILayout.EndScrollView(); EditorGUI.EndDisabledGroup(); //Clean menus foreach (EditorObjectsMenu m in removedMenus) { menus.Remove(m); } }