Esempio n. 1
0
        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();
        }
Esempio n. 2
0
 public static void dnspy(MemberInfo member)
 {
     if (member == null)
     {
         throw new ArgumentNullException(nameof(member));
     }
     DnSpyHelper.OpenInDnSpy(member);
 }
Esempio n. 3
0
 public static void dnspy(Type type)
 {
     if (type == null)
     {
         throw new ArgumentNullException(nameof(type));
     }
     DnSpyHelper.OpenInDnSpy(type);
 }
Esempio n. 4
0
 private void DrawDNSpySettings()
 {
     GUILayout.BeginVertical(GUI.skin.box);
     {
         GUILayout.Label("DNSpy Path");
         GUILayout.BeginHorizontal();
         {
             RuntimeUnityEditorCore.INSTANCE.SettingsData.DNSpyPath = GUILayout.TextField(RuntimeUnityEditorCore.INSTANCE.SettingsData.DNSpyPath);
             if (GUILayout.Button("Set", _saveDNSpyPathOptions))
             {
                 DnSpyHelper.SetPath(RuntimeUnityEditorCore.INSTANCE.SettingsData.DNSpyPath);
             }
         }
         GUILayout.EndHorizontal();
     }
     GUILayout.EndVertical();
 }
Esempio n. 5
0
        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();
        }