/// <summary> /// 右键响应 /// </summary> /// <param name="instanceID"></param> /// <param name="selectionRect"></param> private void OnHierarchyGUI(int instanceID, Rect selectionRect) { if (Event.current != null && selectionRect.Contains(Event.current.mousePosition) && Event.current.button == 1 && Event.current.type <= EventType.MouseUp) { GameObject selectedGameObject = EditorUtility.InstanceIDToObject(instanceID) as GameObject; if (selectedGameObject) { StarMapEditorRoot starMapRoot = selectedGameObject.GetComponent <StarMapEditorRoot>(); if (starMapRoot != null) { RefreshStarMapRootUI(starMapRoot); } FixedStarElement starElement = selectedGameObject.GetComponent <FixedStarElement>(); if (starElement != null) { RefreshFixedStarElementUI(starElement); } StarMapMainPanel starMapMainPanel = selectedGameObject.GetComponent <StarMapMainPanel>(); if (starMapMainPanel != null) { RefreshStarMapMainPanel(starMapMainPanel); } PlanetElement planetElement = selectedGameObject.GetComponent <PlanetElement>(); if (planetElement != null) { RefreshPalnetElement(planetElement); } FixedStarPanel fixedStarPanel = selectedGameObject.GetComponent <FixedStarPanel>(); if (fixedStarPanel != null) { RefreshFixedStarPanel(fixedStarPanel); } PlanetPanel planetPanel = selectedGameObject.GetComponent <PlanetPanel>(); if (planetPanel != null) { RefreshPlanetPanel(planetPanel); } PlanetContainer planetContainer = selectedGameObject.GetComponent <PlanetContainer>(); if (planetContainer != null) { RefreshPlanetContainer(planetContainer); } PlanetAreaContainer planetAreaContainer = selectedGameObject.GetComponent <PlanetAreaContainer>(); if (planetAreaContainer != null) { RefreshPlanetAreaContainer(planetAreaContainer); } } } }
public void Init(StarMapMainPanel panel, StarMapVO starVo) { m_StarMainPanel = panel; m_FixedStarid = starVo.FixedStarid; if (starVo != null) { gameObject.name = starVo.Name; } }
public IEnumerator DoEditorUpdate(StarMapMainPanel panel) { m_StarMainPanel = panel; if (m_RectTrans == null) { m_RectTrans = GetComponent <RectTransform>(); } if (m_RectTrans != null) { Vector3 position = m_RectTrans.anchoredPosition3D; m_RectTrans.anchoredPosition3D = new Vector3(position.x, position.y, 0); } yield return(null); }
private void RefreshStarMapMainPanel(StarMapMainPanel starMapMainPanel) { if (starMapMainPanel == null) { return; } m_ContentCache.Clear(); m_ContentCache.Add(new GUIContent("打开")); Vector2 mousePosition = Event.current.mousePosition; GameObject userData = Selection.activeGameObject; int selected = -1; EditorUtility.DisplayCustomMenu(new Rect(mousePosition.x, mousePosition.y, 0, 0), m_ContentCache.ToArray(), selected, delegate(object data, string[] opt, int select) { switch (select) { case 0: OpenStarMap(); break; } }, userData); Event.current.Use(); }
private void HierarchyItemCB(int instanceid, Rect selectionrect) { GameObject obj = EditorUtility.InstanceIDToObject(instanceid) as GameObject; if (obj == null) { return; } bool isActive = obj.activeSelf; Transform trans = obj.transform; StarMapEditorRoot root = obj.GetComponent <StarMapEditorRoot>(); if (root != null) { DrawUI(trans, selectionrect, "编辑", Color.red); } StarMapMainPanel starMapMainPanel = obj.GetComponent <StarMapMainPanel>(); if (starMapMainPanel != null) { DrawUI(trans, selectionrect, "编辑星图", isActive ? Color.yellow : Color.red); } FixedStarPanel fixedStarPanel = obj.GetComponent <FixedStarPanel>(); if (fixedStarPanel != null) { DrawUI(trans, selectionrect, "编辑恒星", isActive ? Color.yellow : Color.red); } PlanetPanel planetPanel = obj.GetComponent <PlanetPanel>(); if (planetPanel != null) { DrawUI(trans, selectionrect, "编辑行星", isActive ? Color.yellow : Color.red); } FixedStarElement fixedStarElement = obj.GetComponent <FixedStarElement>(); if (fixedStarElement != null) { DrawUI(trans, selectionrect, "恒星", Color.red); } PlanetContainer planetContainer = obj.GetComponent <PlanetContainer>(); if (planetContainer != null) { DrawUI(trans, selectionrect, "行星组", isActive ? Color.yellow : Color.red); } PlanetElement planetElement = obj.GetComponent <PlanetElement>(); if (planetElement != null) { DrawUI(trans, selectionrect, "行星", Color.red); } PlanetAreaContainer planetAreaContainer = obj.GetComponent <PlanetAreaContainer>(); if (planetAreaContainer != null) { DrawUI(trans, selectionrect, "区域组", isActive ? Color.yellow : Color.red); } PlanetAreaElement planetAreaElement = obj.GetComponent <PlanetAreaElement>(); if (planetAreaElement != null) { DrawUI(trans, selectionrect, "区域", Color.blue); } }