void OnGUI() { if (this._recompile == null) { // if yes assume recompile then create a reference to a recompile class this._recompile = new RecompileClass(); //little hack for the editor,otherwise on start we have no OSC Connections in the Editor GUI. ([InitializeOnLoad] didn't work) //Init(); _GetOSCConnectionInstances(); } EditorGUI.BeginChangeCheck(); _editorWidth = position.width; if (_config.isOSCTracing) { _editorWidth = _editorWidth - TRACEWIDTH; } if (_config.mySkin != null) { GUI.skin = _config.mySkin; } //Rect for Learning Border Rect r_learn = new Rect(0f, 0f, position.width, position.height); EditorGUILayout.BeginHorizontal(); #region GUI_LEFT EditorGUILayout.BeginVertical(GUILayout.ExpandHeight(true)); if (_config == null) { Rect area = GUILayoutUtility.GetRect(500.0f, 80.0f); EditorGUI.HelpBox(area, "No configuration could be loaded! The Editor could not work in this state.", MessageType.Error); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); return; } GUILayout.Space(4); #region header #region logo GUILayout.BeginHorizontal(); GUILayout.Space(4); UniOSCUtils.DrawTexture(_config.tex_logo); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); #endregion logo GUILayout.BeginHorizontal(); GUI.backgroundColor = _config.isOSCTracing ? Color.green : Color.white; _config.isOSCTracing = GUILayout.Toggle(_config.isOSCTracing, new GUIContent("Trace OSC"), GUI.skin.button, GUILayout.Height(30f), GUILayout.Width(100f)); //OSCConnectionEditor.tex2 GUI.backgroundColor = Color.white; if (GUILayout.Button(new GUIContent("Create OSC Connection", ""), GUILayout.Width(160f), GUILayout.Height(30f))) { _CreateOSCConnection(); Init(); } ; if (GUILayout.Button("Create OSC Mapping File", GUILayout.Height(30f), GUILayout.Width(160f))) { _CreateOSCMappingFile(); } if (GUILayout.Button("Create OSC Session File", GUILayout.Height(30f), GUILayout.Width(160f))) { _CreateOSCSessionFile(); } GUI.backgroundColor = _config.isOSCLearning ? Color.green : Color.white; _config.isOSCLearning = GUILayout.Toggle(_config.isOSCLearning, new GUIContent("Learn OSC"), GUI.skin.button, GUILayout.Height(30f), GUILayout.Width(100f)); //OSCConnectionEditor.tex2 GUI.backgroundColor = Color.white; if (_isOSCLearning != _config.isOSCLearning) { //Toggle was clicked _isOSCLearning = _config.isOSCLearning; OSCLearning(_config.isOSCLearning); //EditorUtility.SetDirty(_config); } //_config.isEditorEnabled = UniOSCConnection.isEditorEnabled; GUI.backgroundColor = _config.isEditorEnabled ? Color.green : Color.white; _config.isEditorEnabled = GUILayout.Toggle(_config.isEditorEnabled, new GUIContent("Editor Mode"), GUI.skin.button, GUILayout.Height(30f), GUILayout.Width(100f)); GUI.backgroundColor = Color.white; UniOSCConnection.isEditorEnabled = _config.isEditorEnabled; GUILayout.EndHorizontal(); #endregion header GUILayout.Space(5); _DrawLineH(_editorWidth - 20f); GUILayout.Space(5); #region Connection GUILayout.BeginHorizontal(); GUIStyle gsCon = new GUIStyle(GUI.skin.label); gsCon.fontSize = 18; GUILayout.Label("OSC Connection", gsCon); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.Space(3); OnGUI_OSCConnection(); #endregion Connection #region space GUI.contentColor = Color.white; GUI.backgroundColor = Color.white; GUILayout.Space(5); _DrawLineH(_editorWidth - 20f); GUILayout.Space(5); #endregion space #region toolbar _config.toolbarInt = GUILayout.Toolbar(_config.toolbarInt, toolbarStrings, GUILayout.Width(200 * toolbarStrings.Count()), GUILayout.Height(30f)); #endregion toolbar GUILayout.Space(5); // _DrawLineH(_editorWidth-20f); GUILayout.Space(5); #region Mapping switch (_config.toolbarInt) { case 0: OnGUI_OSCMapping(); break; case 1: OnGUI_OSCSessionFiles(); break; default: OnGUI_DefaultContent(); break; } #endregion Mapping #region footer GUI.contentColor = Color.white; if (_osConnectionIDList.Count > 0) { _DrawLineH(_editorWidth - 20f); GUILayout.Space(10f); } if (GUILayout.Button(new GUIContent("Refresh Editor", "Refresh the Editor. Reloads the available data"), GUILayout.Width(150), GUILayout.Height(30f))) { Init(); } ; GUILayout.Space(5f); #endregion footer EditorGUILayout.EndVertical(); #endregion GUI_LEFT #region GUI_RIGHT if (_config.isOSCTracing) { Rect r_tracing = GUILayoutUtility.GetRect(1.0f, position.height - 0f); GUI.Box(r_tracing, "", GUI.skin.box); //,GUI.skin.box GUI.skin.customStyles[1] OnGUI_Trace(); } #endregion GUI_RIGHT EditorGUILayout.EndHorizontal(); //draw Learning Border if (_config.isOSCLearning) { GUI.backgroundColor = Color.red; GUI.Box(r_learn, "", _config.learnStyle); GUI.backgroundColor = Color.white; } if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(_config); } }
void OnGUI() { if (!Application.isPlaying) { if (!ShowInEditMode) { return; } } GUIScaler.Begin(); GUILayout.BeginVertical(GUILayout.Width(Screen.width / GUIScaler.GuiScale.x), GUILayout.Height(Screen.height / (GUIScaler.GuiScale.y))); // GUILayout.Space(10f); #region IPAddress GUILayout.BeginHorizontal(); GUILayout.Space(10f); UniOSCUtils.DrawTexture(tex_logo); GUILayout.FlexibleSpace(); GUILayout.Label(_IPAddress, GUILayout.Height(30f)); GUILayout.FlexibleSpace(); _showGUI = GUILayout.Toggle(_showGUI, new GUIContent(_showGUI? "Hide GUI":"Show GUI"), GUI.skin.button, GUILayout.Height(30), GUILayout.Width(130)); GUILayout.Space(10f); GUILayout.EndHorizontal(); #endregion IPAddress if (!_showGUI) { GUILayout.EndVertical(); GUIScaler.End(); return; } GUILayout.Space(10f); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); #region OSCConnections GUILayout.BeginVertical(); foreach (var con in UniOSCConnection.Instances) { if (con.gameObject.activeInHierarchy && con.enabled) { con.RenderGUI(); GUILayout.Space(5f); } //if } //for GUILayout.EndVertical(); #endregion OSCConnections GUILayout.FlexibleSpace(); #region trace if (gs_textArea == null) { gs_textArea = new GUIStyle(GUI.skin.textArea); gs_textArea.fontSize = 10; gs_textArea.normal.textColor = Color.yellow; } GUILayout.BeginVertical(GUILayout.Width(200f)); traceScrollpos = GUILayout.BeginScrollView(traceScrollpos, GUILayout.Height(((Screen.height / GUIScaler.GuiScale.y) * 0.75f) - 40f), GUILayout.ExpandHeight(false)); GUILayout.TextArea(_oscTraceStr, gs_textArea, GUILayout.ExpandHeight(true)); GUILayout.EndScrollView(); if (GUILayout.Button("Clear Trace", GUILayout.Height(30))) { _oscTraceStr = ""; _osctraceStrb = new StringBuilder(); } GUILayout.EndVertical(); #endregion trace GUILayout.Space(10f); GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUIScaler.End(); }