void OnGUI() { //有时候可能要做些数据收集 if (!CheckSomeThing()) { return; } //布局1,如果界面不是用GUILayout布局出来的,而是自己算的,那么写个布局函数和绘制函数,如果需要的话还可以写个消息处理函数 //Layout(); //Draw(); //Handle(); //布局2,如果界面是用GUILayout布局出来的,那么直接写在这里就可以了 using (new AutoBeginHorizontal()) { //左边 using (new AutoBeginVertical("PreferencesSectionBox", GUILayout.Width(250))) { using (new AutoLabelWidth(80)) { //1 区域一 EditorGUILayoutEx.FadeArea area = EditorGUILayoutEx.instance.BeginFadeArea(m_area1, "区域一", GetPrefs("m_area1"), EditorStyleEx.BoxStyle); m_area1 = area.open; if (area.Show()) { DrawArea1(); } EditorGUILayoutEx.instance.EndFadeArea(); //2 区域二 area = EditorGUILayoutEx.instance.BeginFadeArea(m_area2, "区域二", GetPrefs("m_area2"), EditorStyleEx.BoxStyle); m_area2 = area.open; if (area.Show()) { DrawArea2(); } EditorGUILayoutEx.instance.EndFadeArea(); } } //右边 using (new AutoBeginVertical(GUILayout.ExpandWidth(true))) { DrawRight(); } } }
//返回值表示是不是删除了这个触发器 bool DrawTrigger(CameraTrigger t) { Color tmp1 = GUI.color; EditorGUILayoutEx.FadeArea area = EditorGUILayoutEx.instance.BeginFadeArea(t.isExpand, "", t.name + "_cameraTrigger", EditorStyleEx.BoxStyle); // Color tmp2 = GUI.color; //BeginFadeArea 需要 GUI.color = tmp1; //BeginFadeArea 需要 using (new AutoBeginHorizontal()) { t.gameObject.name = EditorGUILayout.TextField(t.gameObject.name, EditorGUILayoutEx.defaultLabelStyle, GUILayout.ExpandWidth(false), GUILayout.ExpandHeight(false)); if (GUILayout.Button("", EditorGUILayoutEx.defaultLabelStyle)) { t.isExpand = !t.isExpand; } if (GUILayout.Button(EditorGUIUtility.IconContent(CameraMgr.instance.m_curCameraInfo == t.m_info ? "preAudioLoopOn" : "preAudioLoopOff"), EditorStyles.toolbarButton, GUILayout.Width(25))) { CameraMgr.instance.Add(t.m_info, false, CameraInfo.Camera_Editor_Priority);//优先级要提高点 return(false); } if (GUILayout.Button(EditorGUIUtility.IconContent("TreeEditor.Trash"), EditorStyles.toolbarButton, GUILayout.Width(25))) { return(true); } } if (area.Show()) { GUI.color = tmp2;//BeginFadeArea 需要 Transform tran = t.transform; EditorGUILayout.ObjectField("触发体", t.GetComponent <BoxCollider>(), typeof(BoxCollider), false); using (new AutoBeginHorizontal()) { EditorGUILayout.PrefixLabel("触发体位置"); tran.position = EditorGUILayout.Vector3Field(GUIContent.none, tran.position, GUILayout.Height(18)); if (GUILayout.Button("同步到跟随者", GUILayout.Width(100))) { tran.position = CameraMgr.instance.GetFollowPos(); } } using (new AutoBeginHorizontal()) { EditorGUILayout.PrefixLabel("触发体大小"); tran.localScale = EditorGUILayout.Vector3Field(GUIContent.none, tran.localScale, GUILayout.Height(18)); } float y = EditorGUILayout.FloatField("触发体旋转", tran.eulerAngles.y); tran.eulerAngles = new Vector3(tran.eulerAngles.x, y, tran.eulerAngles.z); //镜头信息 DrawCameraInfo(t.m_info, t.gameObject.name, false, true); } EditorGUILayoutEx.instance.EndFadeArea(); return(false); }
//绘制窗口时调用 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); }