//绘制窗口时调用 void OnGUI() { EditorGUIUtility.labelWidth = 80f; EditorGUILayout.LabelField("所属图集", m_atlasName); EditorGUILayout.LabelField("前缀", m_prefix); //要设置成的图集的名字 using (new AutoBeginHorizontal()) { EditorGUILayout.PrefixLabel("选中的图片"); using (AutoBeginScrollView a = new AutoBeginScrollView(selScroll, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true))) { selScroll = a.Scroll; foreach (TextureImporter tex in m_texs) { string path = AssetDatabase.GetAssetPath(tex); if (string.IsNullOrEmpty(path)) { continue; } EditorGUILayout.LabelField(path); } } } if (GUILayout.Button("设置", GUILayout.Height(50))) { Set(); } }
//绘制窗口时调用 void OnGUI() { EditorGUIUtility.labelWidth = 80f; //找到所有选中的图片 using (new AutoBeginHorizontal()) { m_atlasName = EditorGUILayout.TextField("图集名", m_atlasName); string[] ns = UnityEditor.Sprites.Packer.atlasNames; if (ns.Length != 0) { int i = Array.IndexOf(ns, m_atlasName); i = EditorGUILayout.Popup(i, ns, GUILayout.Width(80)); if (i != -1 && ns[i] != m_atlasName) { m_atlasName = ns[i]; } } if (GUILayout.Button("设置", GUILayout.Width(50))) { Set(); } } //是否改前缀 bool isChangePrefix = EditorPrefs.GetInt("change_atlas_prefix") == 0; bool after = EditorGUILayout.Toggle("重命名前缀", isChangePrefix); if (after != isChangePrefix) { isChangePrefix = after; EditorPrefs.SetInt("change_atlas_prefix", isChangePrefix ? 0 : 1); } //要设置成的图集的名字 using (new AutoBeginHorizontal()) { EditorGUILayout.PrefixLabel("选中的图片"); using (AutoBeginScrollView a = new AutoBeginScrollView(selScroll, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true))) { selScroll = a.Scroll; foreach (TextureImporter tex in m_texs) { string path = AssetDatabase.GetAssetPath(tex); if (string.IsNullOrEmpty(path)) { continue; } EditorGUILayout.LabelField(path); } } } }
//绘制窗口时调用 void OnGUI() { using (var scrollView = new AutoBeginScrollView(m_scrollPos)) { m_scrollPos = scrollView.Scroll; if (m_canEdit) { m_message = EditorGUILayout.TextArea(m_message, EditorUtil.TextAreaWordWrap, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true)); } else { EditorGUILayout.LabelField(m_message, EditorUtil.LabelWordWrap, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true)); } } GUILayout.Space(5); if (m_onOk != null && m_onCancel != null) { using (new AutoBeginHorizontal()) { if (GUILayout.Button(string.IsNullOrEmpty(m_okText) ? "确定" : m_okText, GUILayout.Height(24))) { m_needCloseCallback = false; Close(); m_onOk(m_message, m_context); } GUILayout.Space(5); if (GUILayout.Button(string.IsNullOrEmpty(m_cancelText) ? "取消" : m_cancelText, GUILayout.Height(24))) { m_needCloseCallback = false; Close(); m_onCancel(m_message, m_context); } } } else if (m_onOk != null) { if (GUILayout.Button(string.IsNullOrEmpty(m_okText) ? "确定" : m_okText, GUILayout.Height(24))) { m_needCloseCallback = false; Close(); m_onOk(m_message, m_context); } } }
//布局timeline,取得所有位置 void TimeLineLayout() { //时间轴 using (new AutoBeginHorizontal()) { GUILayout.Box("", EditorStyles.toolbar, GUILayout.ExpandWidth(true), GUILayout.Height(hTimeLine)); if (Event.current.type == EventType.Repaint) { RectTimeLine = GUILayoutUtility.GetLastRect(); } GUILayout.Space(wRightScrollBar); } //某一时间对应的处理组的父节点区域 using (new AutoBeginHorizontal()) { GUILayout.Box("", "AnimationEventBackground", GUILayout.ExpandWidth(true), GUILayout.Height(hTimeLine)); if (Event.current.type == EventType.Repaint) { RectHandles = GUILayoutUtility.GetLastRect(); } GUILayout.Space(wRightScrollBar); } //子节点区域 using (AutoBeginScrollView a = new AutoBeginScrollView(ScrollHandles, false, true, GUILayout.ExpandWidth(true), GUILayout.Height(hMiddle - hTimeLine - hTimeLineHandle))) { ScrollHandles = a.Scroll; int maxCount = this.m_subHandles.MaxCount; for (int i = 0; i < maxCount; ++i) { Color PreviousColor = GUI.color; GUI.color = i % 2 == 0 ? Color.white * 0.3f : Color.white * 0.6f; GUILayout.Box("", GUILayout.ExpandWidth(true), GUILayout.Height(hHandleRow)); GUI.color = PreviousColor; //if (Event.current.type == EventType.Repaint) // uiSeq.RectHandles[i] = GUILayoutUtility.GetLastRect(); } } }
void DrawTriggers() { CameraTriggerMgr mgr = CameraTriggerMgr.instance; CameraTriggerGroup group = mgr.CurGroup; using (AutoBeginScrollView a = new AutoBeginScrollView(m_scroll, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(false)))//, GUILayout.ExpandHeight(true) { m_scroll = a.Scroll; DrawCameraInfo(mgr.CurGroup.m_defaultInfo, "默认镜头", true, true); foreach (CameraTrigger t in group.Triggers) { if (DrawTrigger(t)) { group.RemoveTrigger(t); return; } } } }
//绘制窗口时调用 void OnGUI() { //标题栏 using (new AutoBeginHorizontal()) { if (GUILayout.Button("贴图名", EditorStyles.toolbarPopup)) { m_infos.SortEx((TextureInfo a, TextureInfo b) => a.tex.name.CompareTo(b.tex.name)); } if (GUILayout.Button("大小", EditorStyles.toolbarPopup, GUILayout.Width(100))) { m_infos.SortEx((TextureInfo a, TextureInfo b) => a.sizeMax.CompareTo(b.sizeMax) * -1); } if (GUILayout.Button("类型", EditorStyles.toolbarPopup, GUILayout.Width(100))) { m_infos.SortEx((TextureInfo a, TextureInfo b) => a.texImporter.textureType.CompareTo(b.texImporter.textureType)); } if (GUILayout.Button("格式", EditorStyles.toolbarPopup, GUILayout.Width(150))) { m_infos.SortEx((TextureInfo a, TextureInfo b) => a.typeOrder.CompareTo(b.typeOrder)); } if (GUILayout.Button("2的n次方", EditorStyles.toolbarPopup, GUILayout.Width(100))) { m_infos.SortEx((TextureInfo a, TextureInfo b) => { if (!a.IsPOT && b.IsPOT) { return(-1); } else if (a.IsPOT && !b.IsPOT) { return(1); } else { return(0); } }); } if (GUILayout.Button("贴图", EditorStyles.toolbarPopup, GUILayout.Width(100))) { m_infos.SortEx((TextureInfo a, TextureInfo b) => { int sizeA = (int)(a.size.x * a.size.y); int sizeB = (int)(b.size.x * b.size.y); return(sizeA.CompareTo(sizeB) * 1); }); } using (new AutoBeginHorizontal(EditorStyles.toolbar, GUILayout.Width(100))) { m_slider = (int)GUILayout.HorizontalSlider(m_slider, 15, 160, GUILayout.Width(100)); } } //贴图列表 using (AutoBeginScrollView s = new AutoBeginScrollView(m_scroll, GUILayout.ExpandHeight(true))) { m_scroll = s.Scroll; foreach (var info in m_infos) { DrawInfo(info); } } //底部工具栏 using (new AutoBeginVertical(EditorStyles.helpBox)) { m_showUncompress = EditorGUILayout.Toggle("显示不压缩(uncompress后缀)", m_showUncompress); using (new AutoBeginHorizontal()) { using (new AutoBeginVertical(EditorStyles.helpBox, GUILayout.ExpandHeight(true))) { foreach (var a in m_sizeIdx) { m_sizeToggle[a.Key] = EditorGUILayout.Toggle(string.Format("{0}贴图{1}张", a.Key, a.Value), m_sizeToggle[a.Key]); } EditorGUILayout.LabelField(string.Format("总共{0}张", m_infos.Count)); } using (new AutoBeginVertical(EditorStyles.helpBox, GUILayout.ExpandHeight(true))) { foreach (var a in m_textureTypeToggle) { m_textureTypeToggle[a.Key] = EditorGUILayout.Toggle(((TextureImporterType)a.Key).ToString(), a.Value); } } using (new AutoBeginVertical(EditorStyles.helpBox, GUILayout.ExpandHeight(true))) { foreach (var a in m_typeToggle) { m_typeToggle[a.Key] = EditorGUILayout.Toggle(((TextureImporterFormat)a.Key).ToString(), a.Value); } } using (new AutoBeginVertical(EditorStyles.helpBox, GUILayout.ExpandHeight(true))) { using (new AutoBeginHorizontal()) { m_texFindRef = (Texture)EditorGUILayout.ObjectField(m_texFindRef, typeof(Texture), false); if (GUILayout.Button("查找引用", GUILayout.Width(60))) { FindTextureRef(); } } foreach (var m in m_refMats.Values) { DrawRef(m); } } } } }
//下边子处理详细页面 void DrawBottomSubHandles() { Handle remove = null; using (AutoBeginScrollView a = new AutoBeginScrollView(ScrollBottom, false, false, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true))) { ScrollBottom = a.Scroll; using (new AutoBeginHorizontal(GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true))) { int idx = 0; float time = -1; int idxTime = -1; //第几个时间点,包含不可见的 int row = 0; //第几行,可见的 int col = 0; //第几列,可见的 bool isDurationInvalid = false; //是不是即时的 Color PreviousColor = GUI.backgroundColor; foreach (var h in this.m_subHandles.m_handles) { //画处理组,大菱形 if (!Mathf.Approximately(h.m_delay, time)) { idx = 0; ++idxTime; time = h.m_delay; row = 0; } else { ++idx; } if (h.m_seqIsShow == false) { continue; } //新一列 if (row == 0 && h.m_seqIsShow) { if (col != 0) { GUILayout.EndVertical(); GUILayout.EndScrollView(); } GUI.backgroundColor = col % 2 == 0 ? Color.white :new Color(0.90f, 0.90f, 1f); ScrolBottomCol[col] = GUILayout.BeginScrollView(ScrolBottomCol[col], GUILayout.Width(250), GUILayout.ExpandHeight(true)); GUILayout.BeginVertical(EditorStyles.miniButtonMid, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true)); //这一列是不是即时的 GUILayout.BeginHorizontal(GUILayout.ExpandWidth(true)); float old2 = UnityEditor.EditorGUIUtility.labelWidth; UnityEditor.EditorGUIUtility.labelWidth = 50; isDurationInvalid = EditorGUILayout.Toggle("即时", h.m_isDurationInvalid, GUILayout.ExpandWidth(true)); if (isDurationInvalid != h.m_isDurationInvalid) { this.m_subHandles.SetDurationInvalid(h.m_delay, isDurationInvalid); } UnityEditor.EditorGUIUtility.labelWidth = old2; GUIStyle style = new GUIStyle(); style.richText = true; GUILayout.Label(string.Format("<color=white>索引:<size=14><b><color=maroon>{0}</color></b></size> {1:0.##}</color>", idxTime, h.m_delay), style, GUILayout.Width(60)); GUILayout.EndHorizontal(); ++col; } GUI.backgroundColor = PreviousColor; GUILayout.BeginVertical(EditorStyles.objectFieldThumb, GUILayout.ExpandWidth(true)); GUILayout.Space(5); if (!isDurationInvalid) { //画标题 GUILayout.BeginHorizontal(); if (GUILayout.Button("隐藏", EditorStyles.miniButtonLeft, GUILayout.Width(50), GUILayout.Height(20))) { h.m_seqIsShow = false; } GUIStyle style = new GUIStyle(EditorStyles.miniButtonMid); style.richText = true; GUILayout.Label(string.Format("<size=14><color=white>{0}{1}</color></size>", h.CurTypeName, h.m_id), style, GUILayout.ExpandWidth(true), GUILayout.Height(20)); if (GUILayout.Button("删除", EditorStyles.miniButtonRight, GUILayout.Width(50), GUILayout.Height(20))) { remove = h; } GUILayout.EndHorizontal(); //画内容 float old = UnityEditor.EditorGUIUtility.labelWidth; UnityEditor.EditorGUIUtility.labelWidth = 50; if (h.CurHandle.OnDrawGo(m_comp, h, "对象")) { h.CurHandle.OnReset(h, false, true); } h.CurHandle.OnDrawMid(m_comp, h, SimpleHandleEditor.OnOpenWnd, true); UnityEditor.EditorGUIUtility.labelWidth = old; } else { //即时处理的话显示得简单点 float old = UnityEditor.EditorGUIUtility.labelWidth; UnityEditor.EditorGUIUtility.labelWidth = 50; GUILayout.BeginHorizontal(); if (h.CurHandle.OnDrawGo(m_comp, h, h.CurTypeName)) { h.CurHandle.OnReset(h, false, true); } if (GUILayout.Button("删除", GUILayout.Width(50), GUILayout.Height(20))) { remove = h; } GUILayout.EndHorizontal(); h.CurHandle.OnDrawMin(m_comp, h, SimpleHandleEditor.OnOpenWnd, true); UnityEditor.EditorGUIUtility.labelWidth = old; } GUILayout.Space(5); GUILayout.EndVertical(); ++row; } if (col != 0) { GUILayout.EndVertical(); GUILayout.EndScrollView(); } GUI.backgroundColor = PreviousColor; } } //删除 if (remove != null) { m_subHandles.RemoveSubHandle(this.m_comp, this.m_handle, remove); } }
//绘制窗口时调用 void OnGUI() { using (AutoBeginScrollView a = new AutoBeginScrollView(pos)) { pos = a.Scroll; GUILayout.Label("boldLabel", EditorStyles.boldLabel); GUILayout.Label("centeredGreyMiniLabel", EditorStyles.centeredGreyMiniLabel); GUILayout.Label("colorField", EditorStyles.colorField); GUILayout.Label("foldout", EditorStyles.foldout); GUILayout.Label("foldoutPreDrop", EditorStyles.foldoutPreDrop); GUILayout.Label("helpBox", EditorStyles.helpBox); GUILayout.Label("inspectorDefaultMargins", EditorStyles.inspectorDefaultMargins); GUILayout.Label("inspectorFullWidthMargins", EditorStyles.inspectorFullWidthMargins); GUILayout.Label("label", EditorStyles.label); GUILayout.Label("largeLabel", EditorStyles.largeLabel); GUILayout.Label("layerMaskField", EditorStyles.layerMaskField); GUILayout.Label("miniBoldLabel", EditorStyles.miniBoldLabel); GUILayout.Label("miniButton", EditorStyles.miniButton); GUILayout.Label("miniButtonLeft", EditorStyles.miniButtonLeft); GUILayout.Label("miniButtonMid", EditorStyles.miniButtonMid); GUILayout.Label("miniButtonRight", EditorStyles.miniButtonRight); GUILayout.Label("miniLabel", EditorStyles.miniLabel); GUILayout.Label("miniTextField", EditorStyles.miniTextField); GUILayout.Label("numberField", EditorStyles.numberField); GUILayout.Label("objectField", EditorStyles.objectField); GUILayout.Label("objectFieldMiniThumb", EditorStyles.objectFieldMiniThumb); GUILayout.Label("objectFieldThumb", EditorStyles.objectFieldThumb); GUILayout.Label("popup", EditorStyles.popup); GUILayout.Label("radioButton", EditorStyles.radioButton); GUILayout.Label("textArea", EditorStyles.textArea); GUILayout.Label("textField", EditorStyles.textField); GUILayout.Label("toggle", EditorStyles.toggle); GUILayout.Label("toggleGroup", EditorStyles.toggleGroup); GUILayout.Label("toolbar", EditorStyles.toolbar); GUILayout.Label("toolbarButton", EditorStyles.toolbarButton); GUILayout.Label("toolbarDropDown", EditorStyles.toolbarDropDown); GUILayout.Label("toolbarPopup", EditorStyles.toolbarPopup); GUILayout.Label("toolbarTextField", EditorStyles.toolbarTextField); GUILayout.Label("whiteBoldLabel", EditorStyles.whiteBoldLabel); GUILayout.Label("whiteLabel", EditorStyles.whiteLabel); GUILayout.Label("whiteLargeLabel", EditorStyles.whiteLargeLabel); GUILayout.Label("whiteMiniLabel", EditorStyles.whiteMiniLabel); GUILayout.Label("wordWrappedLabel", EditorStyles.wordWrappedLabel); GUILayout.Label("wordWrappedMiniLabel", EditorStyles.wordWrappedMiniLabel); GUILayout.Label("AnimationEventBackground", "AnimationEventBackground"); GUILayout.Label("Dopesheetkeyframe", "Dopesheetkeyframe"); EditorGUILayoutEx.FadeArea fadeArea = EditorGUILayoutEx.instance.BeginFadeArea(bOpenArea, "区域块", "area", EditorStyleEx.PixelBoxStyle, EditorStyleEx.TopBoxHeaderStyle); bOpenArea = fadeArea.open; if (fadeArea.Show()) { EditorGUILayoutEx.FadeArea topFadeArea = EditorGUILayoutEx.instance.BeginFadeArea(bOpenArea3, "", "areaid", EditorStyleEx.GraphBoxStyle); bOpenArea3 = topFadeArea.open; if (topFadeArea.Show()) { EditorGUILayout.HelpBox("help box", MessageType.Info); } EditorGUILayoutEx.instance.EndFadeArea(); } EditorGUILayoutEx.instance.EndFadeArea(); EditorGUILayout.TextField("", "可编辑区", EditorStyleEx.BoxHeaderStyle, GUILayout.ExpandWidth(false), GUILayout.ExpandHeight(false)); using (new AutoBeginHorizontal()) { GUILayout.Button("Draw", EditorStyleEx.GraphGizmoButtonStyle); if (GUILayout.Toggle(true, "Info", EditorStyleEx.GraphInfoButtonStyle)) { } GUILayout.Button("Delete", EditorStyleEx.GraphDeleteButtonStyle); GUILayout.Button("DownArrowEdiStyle", EditorStyleEx.DownArrowStyle); GUILayout.Button("UpArrowEdiStyle", EditorStyleEx.UpArrowStyle); } GUILayout.Button("buttonEdiStyle", EditorStyleEx.ButtonStyle); GUILayout.Toggle(true, "toggleEdiStyle", EditorStyleEx.ToggleStyle); GUILayout.Label("labelEdiStyle", EditorStyleEx.LabelStyle); GUILayout.TextField("textfieldEdiStyle", EditorStyleEx.TextfieldStyle); GUILayout.TextArea("textareaEdiStyle", EditorStyleEx.TextareaStyle); GUILayout.Space(20); EditorGUILayoutEx.FadeArea fadeArea2 = EditorGUILayoutEx.instance.BeginFadeArea(bOpenArea2, "区域块", "area2", EditorStyleEx.PixelBoxStyle); bOpenArea2 = fadeArea2.open; if (fadeArea2.Show()) { using (new AutoBeginHorizontal()) { EditorGUILayout.HelpBox("help box", MessageType.Info); } } GUILayout.Button("CloseButtonEdiStyle", EditorStyleEx.CloseButtonStyle); GUILayout.Button("SmallResetEdiStyle", EditorStyleEx.SmallResetStyle); GUILayout.Button("GizmoButtonEdiStyle", EditorStyleEx.GizmoButtonStyle); GUILayout.Label("thinHelpBox", EditorStyleEx.ThinHelpBox, GUILayout.Height(15)); EditorGUILayoutEx.instance.EndFadeArea(); GUILayout.Space(30); } GUILayout.Space(20); }