private void DrawSingleContentEntry(ICacheEntry entry) { GUILayout.BeginHorizontal((_inspectorRecordHeight)); { GUILayout.Label(entry.TypeName(), (_inspectorTypeWidth)); var value = entry.GetValue(); if (entry.CanEnterValue() || value is Exception) { DrawVariableNameEnterButton(entry); } else { DrawVariableName(entry); } if (entry.CanSetValue() && CanCovert(EditorUtilities.ExtractText(value), entry.Type())) { DrawEditableValue(entry, value, GUILayout.ExpandWidth(true)); } else { DrawValue(value, GUILayout.ExpandWidth(true)); } if (DnSpyHelper.IsAvailable && GUILayout.Button("^", _dnSpyButtonOptions)) { DnSpyHelper.OpenInDnSpy(entry); } } GUILayout.EndHorizontal(); }
public static void dnspy(MemberInfo member) { if (member == null) { throw new ArgumentNullException(nameof(member)); } DnSpyHelper.OpenInDnSpy(member); }
public static void dnspy(Type type) { if (type == null) { throw new ArgumentNullException(nameof(type)); } DnSpyHelper.OpenInDnSpy(type); }
private void DrawSingleContentEntry(ICacheEntry entry) { GUILayout.BeginHorizontal(_inspectorRecordHeight); { try { GUILayout.Label(entry.TypeName(), _inspectorTypeWidth); var value = entry.GetValue(); if (entry.CanEnterValue() || value is Exception) { DrawVariableNameEnterButton(entry); } else { GUILayout.TextArea(entry.Name(), GUI.skin.label, _inspectorNameWidth); } if (entry.CanSetValue() && ToStringConverter.CanEditValue(entry, value)) { DrawEditableValue(entry, value, GUILayout.ExpandWidth(true)); } else { GUILayout.TextArea(ToStringConverter.ObjectToString(value), GUI.skin.label, GUILayout.ExpandWidth(true)); } if (DnSpyHelper.IsAvailable && GUILayout.Button("^", _dnSpyButtonOptions)) { DnSpyHelper.OpenInDnSpy(entry); } } catch (Exception ex) { RuntimeUnityEditorCore.Logger.Log(LogLevel.Error, $"Failed to draw setting {entry?.Name()} - {ex.Message}"); GUILayout.TextArea(ex.Message, GUI.skin.label, GUILayout.ExpandWidth(true)); } } GUILayout.EndHorizontal(); }