public void OnEnable() { EditorApplication.playmodeStateChanged += PlaymodeStateChanged; Instance = this; UniOSCConnectionEditor.LoadTextures(); //Textures are otherwise not loaded when Inspector for OSCCOnnection is not once visible Init(); }
void OnGUI_OSCConnection() { EditorGUILayout.BeginHorizontal(); //Hardcoding layout for wrapping int maxCols = 3; int minCols = 1; maxCols = (int)Math.Max(minCols, Math.Floor((_editorWidth - 20f) / (400f * 1.0f))); //Floor Ceiling if (_osConnectionIDList.Count <= 0) { EditorGUILayout.BeginVertical(); GUILayout.Space(10f); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); Rect area = GUILayoutUtility.GetRect(500.0f, 80.0f); EditorGUI.HelpBox(area, "There is no OSCConnection discovered. Please create an OSCConnection or enable a GameObject with an OSCConnection component in your project.\nIf you can't see any OSCConnection even if you have enabled one please hit the 'Refresh Editor' button.", MessageType.Info); GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); GUILayout.Space(10f); EditorGUILayout.EndVertical(); } else { for (var i = 0; i < _osConnectionIDList.Count; i++) { // Begin new row? if (i % maxCols == 0 && i > 0) { GUILayout.EndHorizontal(); GUILayout.Space(10); GUILayout.BeginHorizontal(); } //without storing ID we loose the connection to the instances on Play/Stop UniOSCConnection con = EditorUtility.InstanceIDToObject(_osConnectionIDList[i]) as UniOSCConnection; if (con != null) { EditorGUILayout.BeginVertical(GUI.skin.box, GUILayout.Width(400f)); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label(con.name); GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); UniOSCConnectionEditor.ShowOSCReciverStatus(con); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); } } //for GUILayout.FlexibleSpace(); //push Layout } //if EditorGUILayout.EndHorizontal(); }