Giter Site home page Giter Site logo

power-inspector's People

Contributors

sisusco avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

power-inspector's Issues

Inspector value overridden on field decorated with `MinAttribute`

Modifying the value of a serialized field which is also decorated with the MinAttribute or the PMinAttribute in the inspector causes it to reset to whatever value is assigned in the respective Min or PMin attribute constructor.

Steps to reproduce

  1. Open any Unity project
  2. Create a custom MonoBehaviour object
  3. Add a private int field and give it any name
  4. Decorate the field above with either the MinAttribute or the PMinAttribute, specifying any positive value as the attribute's constructor parameter
  5. Add this custom MonoBehaviour to any GameObject in the scene
  6. In the Power Inspector window, attempt to modify the value of the serialized field from step 3 (using the text-box, not the drag-control)
  7. Move focus to a different control and observe

Expected and Actual Results

It is expected that inserting a value into the serialized field via the text-box will actually apply the user-specified value. What actually happens is the value is immediately overridden with whatever value was specified within the constructor of the Min or PMin attribute.

Additional Information

Running Unity 2019.3.0f5 with Power Inspector 1.3.2

Multi select dropdown parity mismatching

Unity 2019.3.4f1
Power Inspector 1.3.3
Windows 10 Pro Build 10.0.18362

The multi selections drop down menu parity seems to be mismatching between the default inspector and power inspector.

2020-03-11_14-22-11

It seems to select stuff 3 slots lower than the default inspector and vice versa Screenshot 2020-03-11 14 42 12

Pinging not seen if window is not visible

If you single-click the object reference of an asset, and the Project window is not visible, the user won't be able to see the pinging take place. Same thing with the object reference of a scene object, if the Hierarchy window is not visible.

Expected behaviour:
If an instance of a Project/Hierarchy window is found, it should be pushed to the front of its tab group, so that the pinging action can be seen by the user.

Note:
Ignore Project/Hierarchy windows that are in the same tab group with the inspector in question.

Note 2:
It might be best to make this functionality optional, so that if somebody has other EditorWindows which also could respond to pinging, this feature doesn't push them to the background.

Error with URP Sprite Renderer Component

Game Object only has a Sprite Renderer Component and this error repeats when Power Inspector window is open and object is selected in heirarchy.

Universal Render Pipeline is in use with the Experimental 2d Renderer which may be affecting the Sprite Renderer component.

Unity version: 2019.3.2f1

You cannot call GetLast immediately after beginning a group.
UnityEngine.GUILayoutUtility:GetLastRect()
Sisus.EditorGUIDrawer:AssetHeader(Rect, Editor) (at Assets/Sisus/Power Inspector/Code/DrawGUI/EditorGUIDrawer.cs:442)
Sisus.CustomEditorAssetDrawer:DrawHeaderBase(Rect) (at Assets/Sisus/Power Inspector/Code/Drawers/UnityObject/Asset/CustomEditor/CustomEditorAssetDrawer.cs:620)
Sisus.UnityObjectDrawer`2:DrawPrefix(Rect) (at Assets/Sisus/Power Inspector/Code/Drawers/UnityObject/UnityObjectDrawer.cs:1734)
Sisus.CustomEditorBaseDrawer`2:DrawPrefix(Rect) (at Assets/Sisus/Power Inspector/Code/Drawers/UnityObject/CustomEditorBaseDrawer.cs:608)
Sisus.CustomEditorAssetDrawer:DrawPrefix(Rect) (at Assets/Sisus/Power Inspector/Code/Drawers/UnityObject/Asset/CustomEditor/CustomEditorAssetDrawer.cs:699)
Sisus.CustomEditorBaseDrawer`2:Draw(Rect) (at Assets/Sisus/Power Inspector/Code/Drawers/UnityObject/CustomEditorBaseDrawer.cs:549)
Sisus.GameObjectDrawer:DrawBody(Rect) (at Assets/Sisus/Power Inspector/Code/Drawers/UnityObject/GameObject/GameObjectDrawer.cs:1726)
Sisus.GameObjectDrawer:Draw(Rect) (at Assets/Sisus/Power Inspector/Code/Drawers/UnityObject/GameObject/GameObjectDrawer.cs:1545)
Sisus.Inspector:DrawViewport() (at Assets/Sisus/Power Inspector/Code/Inspector/Core/Inspector.cs:1822)
Sisus.Inspector:DrawViewport(Rect) (at Assets/Sisus/Power Inspector/Code/Inspector/Core/Inspector.cs:1756)
Sisus.PowerInspector:OnGUI(Rect, Boolean) (at Assets/Sisus/Power Inspector/Code/Inspector/Power Inspector/PowerInspector.cs:144)
Sisus.InspectorDrawerWindow:OnGUI() (at Assets/Sisus/Power Inspector/Code/Editor/EditorWindow/InspectorDrawerWindow.cs:1775)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

[Question] Compatibility with Odin Inspector?

Hey there,
I came across your asset and thought it seemed rather interesting. My only concern is compatibility with Odin Inspector, do you happen to know if there is any sort of confliction? Both assets do fairly different stuff but I am sure there is probably some overlap, but not sure if that is going to cause an issue.

Thanks,
-MH

Quick Shadergraph Material Editing is Broken

When trying to edit a material on a mesh renderer/sprite renderer with the material dropdown below. Nothing responds. Selecting text prompts selects nothing, dragging to change numbers doesn't work.
Additionally selecting new textures in the quick material editing while it brings up the drawer, changing options does nothing.

Selecting materials directly does work however.

Using version 1.5.1 of power Inspector
Using Unity 2019.4.8f1

-Dev pls fix. (And thanks for the previous fix, works great now!)

Bug in action:
Shadergraph Bug.zip

Custom PropertyDrawers & Editors targeting open generic types don't get used

I've got a custom property drawer targeting an open generic type like the following:
[CustomPropertyDrawer(typeof(ClampableVariable<>), true)]

I then have types deriving from this type like:
class ClampableFloat : ClampableVariable<float>
class ClampableChar : ClampableVariable<char>

I've also got a custom Editor like:
[CustomEditor(typeof(ClampableVariable<>), true)]

PowerInspector does not detect that these types implement this generic type as a result of how Type.IsSubclassOf works and thus the PropertyDrawer and Editor does not get used to render these types in PowerInspector.

I found this StackOverflow post which provides a handy method for checking if a type inherits from a given generic type:

static bool IsSubclassOfRawGeneric(Type generic, Type toCheck) {
    while (toCheck != null && toCheck != typeof(object)) {
        var cur = toCheck.IsGenericType ? toCheck.GetGenericTypeDefinition() : toCheck;
        if (generic == cur) {
            return true;
        }
        toCheck = toCheck.BaseType;
    }
    return false;
}

I noticed that Unity's native inspector can handle rendering the Editor but not the PropertyDrawer (even though they both target the open generic type).

'Select Component Reference' window 'Self' tab exclusively shows Scene components in Prefab workflow

Clicking the "Target" button on the right side of a serialized inspector field opens the "Select [Component Type]" popup as expected.
However, when this is done through PowerInspector, it does not appear to be cognizant of any currently-open prefab editing environment.
The 'Self' tab, which should display all components of matching types in the scene or prefab you're editing, only ever displays components from the currently open scene, even when the user is in a prefab editing workflow.

For example, compare the result of opening this window through the normal inspector vs PowerInspector:

Native Unity Inspector:
normal_inspector_behavior

PowerInspector:
power_inspector_behavior

In this example, the editor is in a prefab editing context for ExamplePrefab with a Scene open in the background.
The currently open scene only has one Image component, on a GameObject named "SceneObject".
The currently edited prefab only has one Image on its root GameObject, attached to the same GameObject as the component with the inspector reference.
Observe that the "Self" tab opened via PowerInspector shows SceneObject alone as its only option, where Unity's native inspector properly shows ExamplePrefab and not SceneObject.

Custom PropertyDrawer targeting interface type doesn't get used

I've got a custom property drawer targeting an interface like the following:
[CustomPropertyDrawer(typeof(IEditorClampableVariable), true)]

It works perfectly using the native Unity inspector but PowerInspector doesn't seem to detect it at all.
I took a look through the source and made a few observations that may be of some help:

  • In CustomEditorUtility.cs in the method GetDrawersByInheritedInspectedTypesFromAttributes there is a check for if (!targetType.IsClass) with a comment saying "value types don't support inheritance". Interface types will return false here. The Type.IsValueType is preferable to check for value types.
  • A few lines below, a call is made to targetType.GetExtendingType which will only check the type against known Unity components/scriptable objects if it is a type that derives from UnityEngine.Object (which interfaces will not).
  • There's a heavy usage of Type.IsSubclassOf throughout the codebase which will not return true for types that implement interfaces (instead the Type.IsAssignableFrom method could be used).

I understand that there is probably a lot of work involved in making Drawers work when targeting interfaces but my workflow now involves switching back-and-forth between the native inspector and PowerInspector very frequently (when ideally I would like to just stay in PowerInspector!)

Undo crashes Unity when Power Inspector is opened in a window or tab

At some point Power Inspector crashed whenever I wanted to Undo something. Reverting my project to the previous version has fixed the issue, so I am not sure what was causing it, but with Unity inspector opened it didn't crash.

My Unity version: 2018.4.11f1
Version of the Power Inspector: 1.2.7

In order to reproduce:

  1. Open Power Inspector either in a window or tab.
  2. Perform any change e.g. duplicate an object.
  3. Undo. It was crashing Unity, but reverting to the previous version of the project fixed somehow the issue.

exception on enter play mode (sometimes)

sometimes when entering play mode we encounter following exception:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Threading.ThreadAbortException
at (wrapper managed-to-native) System.RuntimeTypeHandle.GetBaseType(System.RuntimeType)
at System.RuntimeType.GetBaseType () [0x00081] in :0
at System.RuntimeType.IsSubclassOf (System.Type type) [0x00020] in :0
at Sisus.TypeExtensions.GetExtendingUnityObjectTypes (System.Type type, System.Boolean includeInvisible, System.Boolean includeAbstract) [0x00413] in Assets\Sisus\Power Inspector\Code\Editor\Extensions\TypeExtensions.cs:1839
at Sisus.DefaultDrawerProvider.BuildDictionariesForInheritedTypes (Sisus.DrawerProviderData drawerProviderData, System.Collections.Generic.List`1[T] drawerTypes, System.Boolean isFallback) [0x00435] in Assets\Sisus\Power Inspector\Code\Editor\Drawers\Provider\DefaultDrawerProvider.cs:747
at Sisus.DefaultDrawerProvider.BuildDictionariesThreaded (Sisus.DrawerProviderData drawersFor) [0x000fa] in Assets\Sisus\Power Inspector\Code\Editor\Drawers\Provider\DefaultDrawerProvider.cs:167
at Sisus.DrawerProviderBase..ctor () [0x00028] in Assets\Sisus\Power Inspector\Code\Editor\Drawers\Provider\DrawerProviderBase.cs:86
at Sisus.DefaultDrawerProvider..ctor () [0x00000] in Assets\Sisus\Power Inspector\Code\Editor\Drawers\Provider\DefaultDrawerProvider.cs:50
at (wrapper managed-to-native) System.Reflection.MonoCMethod.InternalInvoke(System.Reflection.MonoCMethod,object,object[],System.Exception&)
at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00002] in :0
--- End of inner exception stack trace ---
at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00014] in :0
at System.RuntimeType.CreateInstanceMono (System.Boolean nonPublic) [0x000a8] in :0
at System.RuntimeType.CreateInstanceSlow (System.Boolean publicOnly, System.Boolean skipCheckThis, System.Boolean fillCache, System.Threading.StackCrawlMark& stackMark) [0x00009] in :0
at System.RuntimeType.CreateInstanceDefaultCtor (System.Boolean publicOnly, System.Boolean skipCheckThis, System.Boolean fillCache, System.Threading.StackCrawlMark& stackMark) [0x00027] in :0
at System.Activator.CreateInstance (System.Type type, System.Boolean nonPublic) [0x0002c] in :0
at System.Activator.CreateInstance (System.Type type) [0x00000] in :0
at Sisus.DefaultDrawerProviders.SetupThreaded (System.Object threadTaskId) [0x00139] in Assets\Sisus\Power Inspector\Code\Editor\Drawers\Provider\DefaultDrawerProviders.cs:251
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context (System.Object state) [0x00007] in :0
at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in :0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in :0
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x00021] in :0
at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00074] in :0
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in :0

could you have a look at it ? it doesn't break anything but its a bit annoying and i dont have time for a deep investigation - if you need more information feel free to ask

Multiple array elements assignment doesn't work

Unity Version: 2018.4.11.f1
OS: Windows

Steps:

  1. Add any custom written component with serialized array or list of e.g. scriptable objects
  2. In porject hierarchy select multiple instances of appropriate scriptable object
  3. Drag and drop them onto array name in the inspector

Result:
Nothing happens

Expected Result:
Values should be added to the array. This feature is standard Unity feature

Custom property drawers aren't used on member fields of an abstract type

I have a custom PropertyDrawer for drawing the fields of a ScriptableObject.
It works great with PowerInspector for the most part but it does not get used when a declared field type is abstract (even though the injected type is a derived, non-abstract type).

To clarify on that, here's what I've got in my project:

  • A ScriptableObject called RoomLayoutGenerator which is marked as abstract.
  • A type deriving from RoomLayoutGenerator called LinearRoomLayoutGenerator which is not marked as abstract
  • A MonoBehaviour which declares a private serialized field of type RoomLayoutGenerator (note: the abstract one)
  • In the Editor I inject an instance of the LinearRoomLayoutGenerator into the field on the MonoBehaviour

In doing this, I would expect my custom property drawer to be used, but instead the AbstractDrawer is used.

Removing the abstract qualifier from the base type solves the problem but I'd like to refrain from doing this as it introduces a code-smell into my project.

Similarly, changing the declared type on the MonoBehaviour to one of the derived types solves this too, but of course that defeats the entire purpose of what I'm trying to achieve (a strategy pattern-like approach using ScriptableObject).

I understand that this may not be an "issue" so-to-speak but if there is a more elegant way for me to get my custom drawer used on a declared abstract type that'd be fantastic.

Thanks for your help.

infinite loop (hang unity) when Debug+ inspecting a new Input Control

I just bought your inspector, and it seems to work on normal unity objects.

I tried using it on the new InputController, and it's not working. seems to be due to an infinite loop (unity crashes) attaching a debugger shows that the power inspector code spins parsing properties.

i attached a project to repro with. [edit: downloaded and removed]

repo steps:

  1. open in unity 2019.3 and after it all loads, open up the Assets/Scenes/SampleScene
  2. using the powerInspector, click on dwarf_hero in the hiearchy,
  3. for the Player (Script) component, click the Debug+ option
  4. expand and then try to collapse the Plyr Ctrls property. This causes an infinite loop in power-inspector.

Frequent crashes

I purchased Power Inspector about 2 weeks ago. However, each time I enable it (3 times so far), I find that within about 5 minutes Unity (version 2018.4.10f1) has crashed; if I don't use Power Inspector, I don't seem to have any problems with crashes. I know one of the crashes was when using the search facility to try to find a property in the inspector, however, I did not capture a log that time. The most recent crash was I think just returning to the editor after switching to another application. I captured a log this time:

`Copied "Content Size Fitter" values
"m_HorizontalFit": 2,
"m_VerticalFit": 0
UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object)
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:Log(Object)
Sisus.Clipboard:SendCopyToClipboardMessage(String, String, String) (at Assets/Sisus/Power Inspector/Code/Editor/Generic/Clipboard/Clipboard.cs:999)
Sisus.BaseDrawer:SendCopyToClipboardMessage(String, String) (at Assets/Sisus/Power Inspector/Code/Editor/Drawers/BaseDrawer.cs:2659)
Sisus.BaseDrawer:SendCopyToClipboardMessage(String) (at Assets/Sisus/Power Inspector/Code/Editor/Drawers/BaseDrawer.cs:2651)
Sisus.BaseDrawer:SendCopyToClipboardMessage() (at Assets/Sisus/Power Inspector/Code/Editor/Drawers/BaseDrawer.cs:2643)
Sisus.BaseDrawer:CopyToClipboard(Int32) (at Assets/Sisus/Power Inspector/Code/Editor/Drawers/BaseDrawer.cs:2497)
Sisus.BaseDrawer:CopyToClipboard() (at Assets/Sisus/Power Inspector/Code/Editor/Drawers/BaseDrawer.cs:2489)
UnityEditor.GenericMenu:CatchMenu(Object, String[], Int32) (at /Users/builduser/buildslave/unity/build/Editor/Mono/GUI/GenericMenu.cs:121)

(Filename: Assets/Sisus/Power Inspector/Code/Editor/Generic/Clipboard/Clipboard.cs Line: 999)

Copied "Horizontal Layout Group" values
"m_Padding": {
"$id": 0,
"$type": "0|UnityEngine.RectOffset, UnityEngine.CoreModule"
},
"m_ChildAlignment": 4,
"m_Spacing": 0,
"m_ChildForceExpandWidth": true,
"m_ChildForceExpandHeight": true,
"m_ChildControlWidth": false,
"m_ChildControlHeight": false
UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object)
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:Log(Object)
Sisus.Clipboard:SendCopyToClipboardMessage(String, String, String) (at Assets/Sisus/Power Inspector/Code/Editor/Generic/Clipboard/Clipboard.cs:999)
Sisus.BaseDrawer:SendCopyToClipboardMessage(String, String) (at Assets/Sisus/Power Inspector/Code/Editor/Drawers/BaseDrawer.cs:2659)
Sisus.BaseDrawer:SendCopyToClipboardMessage(String) (at Assets/Sisus/Power Inspector/Code/Editor/Drawers/BaseDrawer.cs:2651)
Sisus.BaseDrawer:SendCopyToClipboardMessage() (at Assets/Sisus/Power Inspector/Code/Editor/Drawers/BaseDrawer.cs:2643)
Sisus.BaseDrawer:CopyToClipboard(Int32) (at Assets/Sisus/Power Inspector/Code/Editor/Drawers/BaseDrawer.cs:2497)
Sisus.BaseDrawer:CopyToClipboard() (at Assets/Sisus/Power Inspector/Code/Editor/Drawers/BaseDrawer.cs:2489)
UnityEditor.GenericMenu:CatchMenu(Object, String[], Int32) (at /Users/builduser/buildslave/unity/build/Editor/Mono/GUI/GenericMenu.cs:121)

(Filename: Assets/Sisus/Power Inspector/Code/Editor/Generic/Clipboard/Clipboard.cs Line: 999)

Receiving unhandled NULL exception
Obtained 13 stack frames.
#0 0x000001010ad0c7 in void Transfer_SimpleNativeClass<StreamedBinaryWrite, RectOffset, false>(SerializationCommandArguments const&, RuntimeSerializationCommandInfo&)
#1 0x0000010104a8ae in void ExecuteSerializationCommands(SerializationCommandProvider&, StreamedBinaryWrite&, GeneralMonoObject const&)
#2 0x0000010104a650 in void TransferScriptingObject(StreamedBinaryWrite&, ScriptingObjectPtr, ScriptingClassPtr, MonoScriptCache const*)
#3 0x00000101041b79 in void SerializableManagedRefTransfer::Transfer(Object*, SerializableManagedRef&, StreamedBinaryWrite&, bool)
#4 0x00000101108ee4 in WriteObjectToVector(Object const&, dynamic_array<unsigned char, 0ul>&, TransferInstructionFlags)
#5 0x0000010140adfa in SerializedObject::Update()
#6 0x000001c022811d in (wrapper managed-to-native) UnityEditor.SerializedObject:Update (UnityEditor.SerializedObject) {0x13b92c618} + 0x11d (0x1c0228000 0x1c0228224) [0x20ada5c80 - Unity Child Domain]
#7 0x0000019b6d3060 in mono_jit_runtime_invoke
#8 0x0000019b8947e5 in do_runtime_invoke
#9 0x0000019b897b31 in mono_runtime_try_invoke_array
#10 0x0000019b846c84 in ves_icall_InternalInvoke
#11 0x0000019e02af50 in (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&) {0x110a4c9f0} + 0x130 (0x19e02ae20 0x19e02b041) [0x20ada5c80 - Unity Child Domain]
#12 0x0000019e3ef3a8 in System.Reflection.MethodBase:Invoke (object,object[]) {0x10fdf0ae0} + 0x88 (0x19e3ef320 0x19e3ef400) [0x20ada5c80 - Unity Child Domain]
Launching bug reporter
[Performance] WebView.DoCefMessages : 845 samples, Peak. 124 ms (225.6x), Avg. 547 us, Total. 462.6 ms (0.0%)
[Performance] WebView.CheckCurlRequests : 264 samples, Peak. 936 us (149.8x), Avg. 6.25 us, Total. 1.649 ms (0.0%)
[Performance] License.Tick : 2543016 samples, Peak. 3.16 ms (2332.8x), Avg. 1.36 us, Total. 3.449 s (0.0%)
[Performance] UnityConnect.Tick : 1424216 samples, Peak. 48.3 ms (1869.2x), Avg. 25.9 us, Total. 36.83 s (0.0%)
[Performance] PackageManager::RunRequestSynchronously : 5 samples, Peak. 70.1 ms (5.0x), Avg. 14.0 ms, Total. 70.25 ms (0.0%)
[Performance] ApplicationTickTimer : 3900945 samples, Peak. 22.6 ks (534418.6x), Avg. 42.3 ms, Total. 165.2 ks (72.2%)
[Performance] VCProvider : 3900946 samples, Peak. 40.8 ms (6513.7x), Avg. 6.26 us, Total. 24.43 s (0.0%)
[Performance] MonoCompiler.Tick : 447412 samples, Peak. 177 s (272884.5x), Avg. 648 us, Total. 289.7 s (0.1%)
[Performance] Internal_SwitchSkin : 3900946 samples, Peak. 952 us (9512.5x), Avg. 100 ns, Total. 390.4 ms (0.0%)
[Performance] Collab.Tick : 1423243 samples, Peak. 10.5 ms (5702.5x), Avg. 1.85 us, Total. 2.628 s (0.0%)
[Performance] WebView.Tick : 2542142 samples, Peak. 224 s (523407.6x), Avg. 428 us, Total. 1.087 ks (0.5%)
[Performance] CurlRequest.Tick : 807143 samples, Peak. 18.9 ms (13837.1x), Avg. 1.37 us, Total. 1.105 s (0.0%)
[Performance] SceneBackgroundTask.Tick : 586300 samples, Peak. 323 us (1296.7x), Avg. 249 ns, Total. 146.1 ms (0.0%)`

Please let me know if I could provide any further info.

C# Script Wizard should be able to use the Namespace set in the assembly definition file

When creating a new script in a folder/subfolder affected by an Assembly Definition file it wraps the class in the Root
Namespace
set in the AD, if there is one.
Creating a script using the C# Scripting Wizard does not seem to take the AD's Root Namespace into account at all.

Its a pretty minor issue but it may be a good idea to add that functionality.
Maybe with a flag to turn it on/off.
So if it's ON the namespace field gets greyed out and uneditable, and it uses the AD Root Namespace.
If it's OFF it ignores the AD completely and lets you specify a namespace.

Errors on Import

Unity 2020.1

The following errors are present on input:

Assets\Sisus\Power Inspector\Code\Editor\Compatibility\OdinInspectorAttributeConverterProvider.cs(133,42): error CS1061: 'ShowIfAttribute' does not contain a definition for 'Condition' and no accessible extension method 'Condition' accepting a first argument of type 'ShowIfAttribute' could be found (are you missing a using directive or an assembly reference?)

Assets\Sisus\Power Inspector\Code\Editor\Compatibility\OdinInspectorAttributeConverterProvider.cs(140,48): error CS1061: 'DisableIfAttribute' does not contain a definition for 'Condition' and no accessible extension method 'Condition' accepting a first argument of type 'DisableIfAttribute' could be found (are you missing a using directive or an assembly reference?)

Assets\Sisus\Power Inspector\Code\Editor\Extensions\TypeExtensions.cs(498,30): error CS0104: 'AssemblyFlags' is an ambiguous reference between 'UnityEditor.Compilation.AssemblyFlags' and 'System.Reflection.AssemblyFlags'

Assets\Sisus\Power Inspector\Code\Editor\Extensions\TypeExtensions.cs(498,63): error CS0104: 'AssemblyFlags' is an ambiguous reference between 'UnityEditor.Compilation.AssemblyFlags' and 'System.Reflection.AssemblyFlags'

Pasting of copied unity event's listener pastes empty value.

Unity Version: 2018.4.11.f1
OS: Windows

Steps:

  1. Add any custom written component with 2 serialized UnityEvent fields to a game object;
  2. In the inspector of the component add and set a listener to one of the events;
  3. Select the listener, right click it and select "Copy";
  4. Right click other event and select "Paste"

Result:
"Pasted value to " popup appears but the list of event listeners is still null. (see screenshot). Also following exception occurs in the log:

GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced.
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

Expected Result:
The listener was successfully copied into the second event.

image

Serialized Class as Values not shown in Dictionary

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object at ARIA_OR.InstructionsData.BuildDictionary () [0x00057] in D:\WorkForWork\ARIA-OR\Assets\_ARIA_OR\Scripts\Production\UIGen\InstructionsData.cs:34 at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&) at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <567df3e0919241ba98db88bec4c6696f>:0 --- End of inner exception stack trace --- at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00048] in <567df3e0919241ba98db88bec4c6696f>:0 at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <567df3e0919241ba98db88bec4c6696f>:0 at Sisus.MethodDrawer.GetValue (System.Int32 index, System.String& error) [0x001ba] in D:\WorkForWork\ARIA-OR\Assets\Sisus\Power Inspector\Code\Drawers\Field\Parent\Method\MethodDrawer.cs:572 UnityEngine.Debug:LogError(Object, Object) Sisus.NotificationMessageDispenser:Message(GUIContent, Object, MessageType, Boolean) (at Assets/Sisus/Power Inspector/Code/Editor/EditorWindow/Messaging/NotificationMessageDispenser.cs:57) Sisus.InspectorDrawerWindow:Message(GUIContent, Object, MessageType, Boolean) (at Assets/Sisus/Power Inspector/Code/Editor/EditorWindow/InspectorDrawerWindow.cs:2045) Sisus.PowerInspector:Message(GUIContent, Object, MessageType, Boolean) (at Assets/Sisus/Power Inspector/Code/Inspector/Power Inspector/PowerInspector.cs:223) Sisus.Inspector:Message(String, Object, MessageType, Boolean) (at Assets/Sisus/Power Inspector/Code/Inspector/Core/Inspector.cs:354) Sisus.MethodDrawer:GetValue(Int32, String&) (at Assets/Sisus/Power Inspector/Code/Drawers/Field/Parent/Method/MethodDrawer.cs:625) Sisus.MethodDrawer:Invoke(String&, Boolean) (at Assets/Sisus/Power Inspector/Code/Drawers/Field/Parent/Method/MethodDrawer.cs:1143) Sisus.MethodDrawer:Invoke() (at Assets/Sisus/Power Inspector/Code/Drawers/Field/Parent/Method/MethodDrawer.cs:1051) Sisus.MethodDrawer:OnClick(Event) (at Assets/Sisus/Power Inspector/Code/Drawers/Field/Parent/Method/MethodDrawer.cs:893) Sisus.Inspector:OnMouseDown(Event) (at Assets/Sisus/Power Inspector/Code/Inspector/Core/Inspector.cs:1444) Sisus.InspectorUtility:BeginInspector(IInspector, Boolean&) (at Assets/Sisus/Power Inspector/Code/Inspector/Utility/InspectorUtility.cs:492) Sisus.PowerInspector:OnGUI(Rect, Boolean) (at Assets/Sisus/Power Inspector/Code/Inspector/Power Inspector/PowerInspector.cs:99) Sisus.InspectorDrawerWindow:OnGUI() (at Assets/Sisus/Power Inspector/Code/Editor/EditorWindow/InspectorDrawerWindow.cs:1750) UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)

"SerializedObject target has been destroyed" console spam on exiting Play Mode

Sometimes when exiting play mode, (SerializedObject target has been destroyed) is spammed to the console several times per second until the object is deselected.

Error trace below:

SerializedObject target has been destroyed.
UnityEditor.MeshRendererEditor:OnInspectorGUI()
Sisus.CustomEditorBaseDrawer2:DrawOnInspectorGUI(Editor) (at Assets/Sisus/Power Inspector/Code/Editor/Drawers/UnityObject/CustomEditorBaseDrawer.cs:1062) Sisus.CustomEditorBaseDrawer2:OnInspectorGUI(Editor) (at Assets/Sisus/Power Inspector/Code/Editor/Drawers/UnityObject/CustomEditorBaseDrawer.cs:1012)
Sisus.CustomEditorBaseDrawer2:DrawMembers(Rect) (at Assets/Sisus/Power Inspector/Code/Editor/Drawers/UnityObject/CustomEditorBaseDrawer.cs:880) Sisus.CustomEditorBaseDrawer2:DrawBody(Rect) (at Assets/Sisus/Power Inspector/Code/Editor/Drawers/UnityObject/CustomEditorBaseDrawer.cs:836)
Sisus.RendererDrawer:DrawBody(Rect) (at Assets/Sisus/Power Inspector/Code/Editor/Drawers/UnityObject/Component/CustomEditor/RendererDrawer.cs:28)
Sisus.CustomEditorBaseDrawer2:Draw(Rect) (at Assets/Sisus/Power Inspector/Code/Editor/Drawers/UnityObject/CustomEditorBaseDrawer.cs:751) Sisus.GameObjectDrawer:DrawBody(Rect) (at Assets/Sisus/Power Inspector/Code/Editor/Drawers/UnityObject/GameObject/GameObjectDrawer.cs:1877) Sisus.GameObjectDrawer:Draw(Rect) (at Assets/Sisus/Power Inspector/Code/Editor/Drawers/UnityObject/GameObject/GameObjectDrawer.cs:1687) Sisus.Inspector2:DrawViewport() (at Assets/Sisus/Power Inspector/Code/Editor/Inspector/Core/Inspector.cs:1892)
Sisus.Inspector2:DrawViewport(Rect) (at Assets/Sisus/Power Inspector/Code/Editor/Inspector/Core/Inspector.cs:1817) Sisus.PowerInspector:OnGUI(Rect, Boolean) (at Assets/Sisus/Power Inspector/Code/Editor/Inspector/Power Inspector/PowerInspector.cs:139) Sisus.InspectorDrawerWindow2:OnGUI() (at Assets/Sisus/Power Inspector/Code/Editor/EditorWindow/InspectorDrawerWindow.cs:2195)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

On this specific instance it occured to a Meshrenderer but I've also seen it happen to a Line Renderer.
Doesn't seem to be causing any issue that I can see, but its rather distracting and worrysome.

-Dev, pretty pls fix.

"Scroll to show" doesn't unfold containing Component

In the context of an inspector view that has a filter applied, if you right-click a class member element and select "Scroll to show", and the element in question is inside a Component that is currently unfolded, the action won't work.

Expected behaviour: the Component should be automatically unfolded, and the element in question shown in the inspector.

Also: If the class member has any folded dataset parents, those should be unfolded as well.

XML Comment Tooltips omit attribute value strings for common attribute types

When a class, parameter, or type parameter reference is embedded in an XML header comment, the auto-generated XML tooltip that appears in PowerInspector omits the contents of the attribute value entirely. The absence of important inline class or method names present in these comments makes them impossible to understand without inspecting the source script.

For example, observe how the XML comment for someScalerValue appears in JetBrains Rider's Documentation panel:

rider_xml_header_source

Versus how it appears in PowerInspector's tooltip window, where the "SomeUtilityClass" and "PrintScalerValue" strings are missing:

powerinspector_xml_missing_string

This is the case for all XML attributes with embedded attribute values, including:

  • <see cref=...
  • <seealso cref=...
  • <exception cref=...
  • <param name=...
  • <paramref name=...
  • <typeparam name=...
  • <typeparamref name=...

At least printing the contents of any cref or name attribute value would help considerably.

Warning while toggling ANY preference checkbox

G4nnjrT 1

  1. Install Odin Inspector (latest version, Edit mode only enabled), using Unity 2019.2.5f1 Plus or Pro (dark skin)
  2. select nothing
  3. open up preferences
  4. Toggle the checkbox "Draw Script Reference Fields"

The above warning gets triggered.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.