public static void OpenPacket(OSCPacket packet) { ShowWindow(); Instance.packetEditorPanel.CurrentPacket = OSCEditorUtils.CopyPacket(packet); Instance.Focus(); }
private OSCValue CreateValueButton(object sender) { var defaultColor = GUI.color; using (new GUILayout.HorizontalScope(OSCEditorStyles.Box)) { if (!_valueTypeTemp.ContainsKey(sender)) { _valueTypeTemp.Add(sender, OSCValueType.Float); } _valueTypeTemp[sender] = (OSCValueType)EditorGUILayout.EnumPopup(_valueTypeTemp[sender]); GUI.color = Color.green; if (GUILayout.Button(_addValueContent, GUILayout.Height(EditorGUIUtility.singleLineHeight))) { var value = OSCEditorUtils.CreateValue(_valueTypeTemp[sender]); if (value != null) { return(value); } Debug.LogError($"[extOSC] You can't add this ({_valueTypeTemp[sender]}) value type!"); } GUI.color = defaultColor; } return(null); }
protected override void Update() { if (ConsoleBuffer == null) { ConsoleBuffer = OSCEditorUtils.LoadConsoleMessages(OSCEditorUtils.LogsFilePath); Repaint(); } if (OSCConsole.ConsoleBuffer.Count > 0) { foreach (var message in OSCConsole.ConsoleBuffer) { if (ConsoleBuffer.Count >= _maxBufferCapacity) { ConsoleBuffer.RemoveAt(ConsoleBuffer.Count - 1); } ConsoleBuffer.Insert(0, message); } OSCEditorUtils.SaveConsoleMessages(OSCEditorUtils.LogsFilePath, ConsoleBuffer); OSCConsole.ConsoleBuffer.Clear(); Repaint(); } if (packetPanel.SelecedMessage != logPanel.SelectedMessage) { packetPanel.SelecedMessage = logPanel.SelectedMessage; Repaint(); } }
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { if (property.propertyType != SerializedPropertyType.ObjectReference) { return; } var fieldType = fieldInfo.FieldType; if (fieldType == _transmitterType) { OSCEditorUtils.FindObjects(TransmitterCallback, true, out var content, out OSCTransmitter[] objects); property.objectReferenceValue = OSCEditorInterface.Popup(position, label, (OSCTransmitter)property.objectReferenceValue, content, objects); } else if (fieldType == _receiverType) { OSCEditorUtils.FindObjects(ReceiverCallback, true, out var content, out OSCReceiver[] objects); property.objectReferenceValue = OSCEditorInterface.Popup(position, label, (OSCReceiver)property.objectReferenceValue, content, objects); } }
private void DrawActions(OSCBase osc, Color elementColor) { GUI.color = Color.yellow; GUI.enabled = osc.IsAvaible; if (osc is OSCTransmitter) { DrawTransmitterActions((OSCTransmitter)osc); } else if (osc is OSCReceiver) { DrawReceiverActions((OSCReceiver)osc); } GUI.enabled = true; GUI.color = Color.white; var selectButton = GUILayout.Button(_selectActionContent, GUILayout.MaxWidth(60)); if (selectButton) { OSCEditorUtils.PingObject(osc); } GUI.color = elementColor; }
private void DrawMessage(OSCMessage message) { var removeValue = (OSCValue)null; EditorGUILayout.LabelField(_addressContent, EditorStyles.boldLabel); using (new GUILayout.VerticalScope(OSCEditorStyles.Box)) { message.Address = EditorGUILayout.TextField(message.Address, GUILayout.MaxHeight(EditorGUIUtility.singleLineHeight)); } EditorGUILayout.LabelField($"Values ({OSCEditorUtils.GetValueTags(message)}):", EditorStyles.boldLabel); using (new GUILayout.VerticalScope()) { foreach (var value in message.Values) { DrawValue(value, ref removeValue); } } var includeValue = CreateValueButton(message); // ACTIONS if (removeValue != null) { message.Values.Remove(removeValue); } if (includeValue != null) { message.AddValue(includeValue); } }
private OSCValue CreateValueButton(object sender) { EditorGUILayout.BeginHorizontal("box"); if (!_valueTypeTemp.ContainsKey(sender)) { _valueTypeTemp.Add(sender, OSCValueType.Float); } _valueTypeTemp[sender] = (OSCValueType)EditorGUILayout.EnumPopup(_valueTypeTemp[sender]); GUI.color = Color.green; var addButton = GUILayout.Button(_addValueContent, GUILayout.Height(EditorGUIUtility.singleLineHeight)); if (addButton) { var value = OSCEditorUtils.CreateOSCValue(_valueTypeTemp[sender]); if (value != null) { return(value); } else { Debug.LogFormat("[extOSC] You can't add this ({0}) value type!", _valueTypeTemp[sender]); } } GUI.color = Color.white; EditorGUILayout.EndHorizontal(); return(null); }
private static string PropertiesPopup(Rect rect, object target, string memberName, Type propertyType, GUIContent content, OSCReflectionAccess access) { var members = OSCReflection.GetMembersByType(target, propertyType, access, OSCReflectionType.All); var clearName = new List <GUIContent>(); var currentIndex = 0; // GET INDEX foreach (var member in members) { if (member.Name == memberName) { currentIndex = clearName.Count; } clearName.Add(new GUIContent(OSCEditorUtils.MemberName(member))); } if (clearName.Count == 0) { clearName.Add(new GUIContent("- None -")); } currentIndex = EditorGUI.Popup(rect, content, currentIndex, clearName.ToArray()); currentIndex = Mathf.Clamp(currentIndex, 0, clearName.Count - 1); return(members.Length > 0 ? members[currentIndex].Name : "- None -"); }
private void AddSlider() { var multiplySliders = (OSCMultiplySliders)target; var layoutTransform = ((Component)_layoutGroupProperty.objectReferenceValue).transform; var resources = OSCEditorUtils.GetStandardResources(); resources.Color = multiplySliders.DefaultColor; var index = _slidersProperty.arraySize; var sliderObject = OSCControls.CreateSlider(resources); sliderObject.name = string.Format("Slider: {0}", index); var slider = sliderObject.GetComponent <OSCSlider>(); slider.MultiplyController = multiplySliders; var sliderRect = sliderObject.GetComponent <RectTransform>(); sliderRect.SetParent(layoutTransform); sliderRect.localScale = Vector3.one; sliderRect.localPosition = Vector3.zero; _slidersProperty.InsertArrayElementAtIndex(index); var element = _slidersProperty.GetArrayElementAtIndex(index); element.objectReferenceValue = sliderObject; }
public void Refresh() { _transmitters.Clear(); _transmitters = OSCEditorUtils.GetTransmitters(); _receivers.Clear(); _receivers = OSCEditorUtils.GetReceivers(); }
public static void Clear() { if (ConsoleBuffer != null) { ConsoleBuffer.Clear(); OSCEditorUtils.SaveConsoleMessages(OSCEditorUtils.LogsFilePath, ConsoleBuffer); } }
private void OpenCurrentDebugPacket() { var filePath = EditorUtility.OpenFilePanel("Open Packet", OSCEditorUtils.DebugFolder, "eod"); if (!string.IsNullOrEmpty(filePath)) { _currentPacket = OSCEditorUtils.LoadPacket(filePath); _filePath = filePath; } }
private void DrawTransmitterActions(OSCTransmitter transmitter) { var actionButton = GUILayout.Button(_sendActionContent); if (actionButton) { var debugPacket = OSCWindowDebug.CurrentPacket; if (debugPacket != null) { transmitter.Send(OSCEditorUtils.CopyPacket(debugPacket)); } } }
private void SavePacket() { if (CurrentPacket == null) { return; } var file = EditorUtility.SaveFilePanel("Save Packet", OSCEditorUtils.DebugFolder, "New Debug Packet", "eod"); if (!string.IsNullOrEmpty(file)) { FilePath = file; OSCEditorUtils.SavePacket(file, CurrentPacket); } }
protected override void LoadWindowSettings() { if (packetEditorPanel == null) return; var lastOpenedFile = OSCEditorSettings.GetString(_lastFileSettings, ""); if (!string.IsNullOrEmpty(lastOpenedFile)) { var debugPacket = OSCEditorUtils.LoadPacket(lastOpenedFile); if (debugPacket != null) { packetEditorPanel.CurrentPacket = debugPacket; packetEditorPanel.FilePath = lastOpenedFile; } } }
private void DrawReceiverActions(OSCReceiver receiver) { var actionButton = GUILayout.Button(_receiveActionContent); if (actionButton) { var debugPacket = OSCWindowDebug.CurrentPacket; if (debugPacket != null) { if (_receiveMethod == null) { _receiveMethod = typeof(OSCReceiver).GetMethod("PacketReceived", BindingFlags.Instance | BindingFlags.NonPublic); } _receiveMethod.Invoke(receiver, new object[] { OSCEditorUtils.CopyPacket(debugPacket) }); } } }
protected override void SaveWindowSettings() { if (packetEditorPanel == null) return; var debugPacket = packetEditorPanel.CurrentPacket; if (debugPacket != null) { if (string.IsNullOrEmpty(packetEditorPanel.FilePath)) { packetEditorPanel.FilePath = OSCEditorUtils.BackupFolder + "unsaved.eod"; } OSCEditorUtils.SavePacket(packetEditorPanel.FilePath, debugPacket); OSCEditorSettings.SetString(_lastFileSettings, packetEditorPanel.FilePath); return; } OSCEditorSettings.SetString(_lastFileSettings, ""); }
private void RecacheMember() { // Check is we have target. var targetObject = _targetProperty.objectReferenceValue; if (targetObject == null) { return; } _members = OSCReflection.GetMembersByType(targetObject, _memberType, _reflectionAccess, _reflectionType); // Stop method is we do not have any members. var membersLength = _members.Length; if (membersLength == 0) { return; } _membersNames = new GUIContent[membersLength + 1]; _membersNames[0] = _memberNoneContent; // Creating member names. for (var i = 0; i < membersLength; i++) { var member = _members[i]; var content = new GUIContent(); if (OnMemberName != null) { content.text = OnMemberName.Invoke(member); } else { content.text = OSCEditorUtils.MemberName(member); } _membersNames[i + 1] = content; } }
private void DrawMessage(OSCMessage message) { if (message != null) { EditorGUILayout.LabelField(_addressContent, EditorStyles.boldLabel); using (new GUILayout.VerticalScope(OSCEditorStyles.Box)) { EditorGUILayout.SelectableLabel(message.Address, GUILayout.Height(EditorGUIUtility.singleLineHeight)); } if (message.Values.Count > 0) { EditorGUILayout.LabelField($"Values ({OSCEditorUtils.GetValueTags(message)}):", EditorStyles.boldLabel); using (new GUILayout.VerticalScope()) { foreach (var value in message.Values) { DrawValue(value); } } } } }
protected override void DrawContent(ref Rect contentRect) { if (!_controlCreator.IsValid) { EditorGUILayout.LabelField(_errorCreateContent, OSCEditorStyles.CenterLabel, GUILayout.Height(contentRect.height)); return; } contentRect.x += 2; contentRect.y += 2; contentRect.width -= 4; contentRect.height -= 4; GUILayout.BeginArea(contentRect); OSCEditorInterface.LogoLayout(); GUILayout.Label(_controlSettingsContent, EditorStyles.boldLabel); EditorGUILayout.BeginVertical(OSCEditorStyles.Box); ControlColor = EditorGUILayout.ColorField(_controlColorContent, ControlColor); EditorGUILayout.EndVertical(); GUI.color = AddInformer ? Color.green : Color.red; if (GUILayout.Button(_addInformerContent)) { AddInformer = !AddInformer; } GUI.color = Color.white; if (AddInformer) { GUILayout.Label(_informerSettingsContent, EditorStyles.boldLabel); EditorGUILayout.BeginVertical(OSCEditorStyles.Box); OSCEditorUtils.FindObjects(TransmitterCallback, true, out var content, out OSCTransmitter[] objects); InformerAddress = EditorGUILayout.TextField(_oscAddressContent, InformerAddress); InformerTransmitter = OSCEditorInterface.PopupLayout(_oscTransmitterContent, InformerTransmitter, content, objects); GUI.color = InformOnChanged ? Color.green : Color.red; if (GUILayout.Button(_informOnChangedContent)) { InformOnChanged = !InformOnChanged; } GUI.color = Color.white; if (!InformOnChanged) { InformerInterval = EditorGUILayout.FloatField(_informerIntervalContent, InformerInterval); if (InformerInterval < 0) { InformerInterval = 0; } EditorGUILayout.HelpBox("Set to 0 for send message with each frame.", MessageType.Info); } EditorGUILayout.EndVertical(); } GUI.color = Color.green; if (GUILayout.Button(_createContent)) { var data = new OSCWindowControlCreator.ControlData(); data.ControlColor = ControlColor; data.UseInformer = AddInformer; data.InformAddress = InformerAddress; data.InformInterval = InformerInterval; data.InformOnChanged = InformOnChanged; data.InformerTransmitter = InformerTransmitter; OSCWindowControlCreator.CreateControl(data); } GUI.color = Color.white; GUILayout.EndArea(); }