Search Unity

Script Inspector 3 - World's Fastest IDE for Unity

Discussion in 'Assets and Asset Store' started by Flipbookee, Jun 2, 2012.

?

What would you like to see in the next update?

Poll closed May 17, 2018.
  1. Line numbers

    140 vote(s)
    36.9%
  2. Code folding

    234 vote(s)
    61.7%
  3. More color schemes

    43 vote(s)
    11.3%
  4. Customizable color schemes

    71 vote(s)
    18.7%
  5. Search functionality

    152 vote(s)
    40.1%
  6. Lower price :D

    104 vote(s)
    27.4%
  7. No thanks, it's fine as it is :)

    11 vote(s)
    2.9%
Multiple votes are allowed.
  1. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    By the way @_Adriaan, your glowing review says it was submitted for a previous version of Si3, for some reason, so update to the latest version if you haven't done that as it includes at least one critical fix. ;) Thanks!
     
    _Adriaan likes this.
  2. thienhaflash

    thienhaflash

    Joined:
    Jun 16, 2012
    Posts:
    513
    Bad news for today,

    Code (CSharp):
    1. ArgumentNullException: Argument cannot be null.
    2. Parameter name: array
    3. System.Array.BinarySearch[Entry`1] (.Entry`1[] array, .Entry`1 value) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/Array.cs:2044)
    4. FavoritesTab+Favorites.OnAssetDeleted (System.String path) (at Assets/FlipbookGames/FavoritesTab/Editor/Scripts/FavoritesTab.cs:795)
    5. FavoritesTab+FavoritesTabAssetPostprocessor.OnPostprocessAllAssets (System.String[] importedAssets, System.String[] deletedAssets, System.String[] movedAssets, System.String[] movedFromAssetPaths) (at Assets/FlipbookGames/FavoritesTab/Editor/Scripts/FavoritesTab.cs:272)
    6. System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    7. Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    8. System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
    9. System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    10. UnityEditor.AssetPostprocessingInternal.PostprocessAllAssets (System.String[] importedAssets, System.String[] addedAssets, System.String[] deletedAssets, System.String[] movedAssets, System.String[] movedFromPathAssets) (at /Users/builduser/buildslave/unity/build/Editor/Mono/AssetPostprocessor.cs:27)
    11.  
     
    Flipbookee likes this.
  3. _Adriaan

    _Adriaan

    Joined:
    Nov 12, 2009
    Posts:
    481
    Hey @Flipbookee: after a big research on why my Unity was showing some really weird behaviour, it turns out your tooltip has been running my getters, initialising singleton gameobjects, triggering game saves, and setting all sorts of global variables that are supposed to only run during runtime.

    How to avoid this?
     
    Flipbookee likes this.
  4. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Hey, thanks @thienhaflash! This one is in Favorites Tabs ;) but still mine, so I'll fix that...

    I see... Sorry about that man! There is a way, let me check that quickly here and I'll let you know...
     
  5. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Okay, to disable all of the Si3 inspection for fields and properties, please simply open FGTypeSystem.cs and go to line 7590. If you're on version 3.0.16 it should be this line:
    Code (csharp):
    1. tooltipText += DebugValue();
    Just comment it out, save it and let Unity compile that. There you go, no more weird side effects...

    But it might be even nicer to only disable inspection of values for properties, so if you want to do that, please find this code at line 7607 in the same script:
    Code (csharp):
    1.     protected string DebugValue()
    2.     {
    3.         var typeOf = TypeOf() as TypeDefinitionBase;
    4.         if (//kind == SymbolKind.ConstantField || kind == SymbolKind.LocalConstant ||
    5.             (kind == SymbolKind.Field || kind == SymbolKind.Property))
    6.         {
    and then remove only the "|| kind == SymbolKind.Property" part there. Save, recompile and that's it - now you can still inspect values on fields, but not on properties since that may have unwanted side effects. :)

    Now, some may also argue that those property getters should actually be methods because calling them has side effects:
    Stack Overflow: When do you use a Getter/Setter function rather than using a Property
    MSDN: Choosing Between Properties and Methods
    I don't know much about your particular case, but I know I don't always follow those guidelines :p and Si3 need an option to disable inspection of properties to avoid such complications, so I'll add that right now... Just note that you could also get such unwanted side effects by using a debugger, but I guess that's less harmful as the game code is already running at that point. ;)

    By the way, it's possible to introduce an attribute for decorating properties that shouldn't be inspected this way! Shall I do that?
     
    Novack likes this.
  6. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Oh, I shouldn't! Such attribute already exists in .Net and it's called DebuggerBrowsableAttribute :p so I just made Si3 read and respect that attribute :cool:
     
    Novack likes this.
  7. thienhaflash

    thienhaflash

    Joined:
    Jun 16, 2012
    Posts:
    513
    Bad news for today,

    I'm a bit out of curious, why should SI3 handle EventDrawer GUI? Seems like a bit out of scope of SI3?
    The FluffyUnderware is from Curvy (a very good Spline tool, btw), he also implement custom Unity Event Drawer I think, that may conflicts with SI3
    Code (CSharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2.   at ScriptInspector.Extensions.FlipbookGames.Si3UnityEventDrawer.OnGUI (Rect position, UnityEditor.SerializedProperty property, UnityEngine.GUIContent label) [0x002c1] in /Users/thienhaflash/Documents/UnityRacing/Client/Game/Assets/Plugins/Editor/ScriptInspector3/Si3 Extensions/Si3 UnityEventDrawer.cs:198
    3.   at UnityEditor.PropertyDrawer.OnGUISafe (Rect position, UnityEditor.SerializedProperty property, UnityEngine.GUIContent label) [0x00010] in /Users/builduser/buildslave/unity/build/Editor/Mono/ScriptAttributeGUI/PropertyDrawer.cs:23
    4.   at UnityEditor.PropertyHandler.OnGUI (Rect position, UnityEditor.SerializedProperty property, UnityEngine.GUIContent label, Boolean includeChildren) [0x000f4] in /Users/builduser/buildslave/unity/build/Editor/Mono/ScriptAttributeGUI/PropertyHandler.cs:134
    5.   at UnityEditor.PropertyHandler.OnGUILayout (UnityEditor.SerializedProperty property, UnityEngine.GUIContent label, Boolean includeChildren, UnityEngine.GUILayoutOption[] options) [0x00063] in /Users/builduser/buildslave/unity/build/Editor/Mono/ScriptAttributeGUI/PropertyHandler.cs:195
    6.   at UnityEditor.EditorGUILayout.PropertyField (UnityEditor.SerializedProperty property, UnityEngine.GUIContent label, Boolean includeChildren, UnityEngine.GUILayoutOption[] options) [0x0000b] in /Users/builduser/buildslave/unity/build/Editor/Mono/EditorGUI.cs:7478
    7.   at UnityEditor.EditorGUILayout.PropertyField (UnityEditor.SerializedProperty property, Boolean includeChildren, UnityEngine.GUILayoutOption[] options) [0x00005] in /Users/builduser/buildslave/unity/build/Editor/Mono/EditorGUI.cs:7472
    8.   at FluffyUnderware.DevToolsEditor.DTInspectorNodeDefaultRenderer.RenderField (FluffyUnderware.DevToolsEditor.DTFieldNode node) [0x00013] in /Users/thienhaflash/Documents/UnityRacing/Client/Game/Assets/Packages/DevTools/Editor/DTEditorClasses.cs:753
    9.   at FluffyUnderware.DevToolsEditor.DTEditor`1[T].renderNode (FluffyUnderware.DevToolsEditor.DTInspectorNode node) [0x00128] in /Users/thienhaflash/Documents/UnityRacing/Client/Game/Assets/Packages/DevTools/Editor/DTEditor.cs:370
    10.   at FluffyUnderware.DevToolsEditor.DTEditor`1[T].renderNode (FluffyUnderware.DevToolsEditor.DTInspectorNode node) [0x00273] in /Users/thienhaflash/Documents/UnityRacing/Client/Game/Assets/Packages/DevTools/Editor/DTEditor.cs:400
    11.   at FluffyUnderware.DevToolsEditor.DTEditor`1[T].RenderGUI (Boolean embedded) [0x00075] in /Users/thienhaflash/Documents/UnityRacing/Client/Game/Assets/Packages/DevTools/Editor/DTEditor.cs:143
    12.   at FluffyUnderware.DevToolsEditor.DTEditor`1[T].OnInspectorGUI () [0x00003] in /Users/thienhaflash/Documents/UnityRacing/Client/Game/Assets/Packages/DevTools/Editor/DTEditor.cs:123
    13.   at UnityEditor.InspectorWindow.DrawEditor (UnityEditor.Editor editor, Int32 editorIndex, Boolean rebuildOptimizedGUIBlock, System.Boolean& showImportedObjectBarNext, UnityEngine.Rect& importedObjectBarRect) [0x003af] in /Users/builduser/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:1236
    14. UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
    15. UnityEngine.DebugLogHandler:LogException(Exception, Object)
    16. UnityEngine.Logger:LogException(Exception, Object)
    17. UnityEngine.Debug:LogException(Exception)
    18. UnityEditor.InspectorWindow:DrawEditor(Editor, Int32, Boolean, Boolean&, Rect&) (at /Users/builduser/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:1243)
    19. UnityEditor.InspectorWindow:DrawEditors(Editor[]) (at /Users/builduser/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:1031)
    20. UnityEditor.InspectorWindow:OnGUI() (at /Users/builduser/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:356)
    21. System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
    22. System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    23. System.Reflection.MethodBase:Invoke(Object, Object[]) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    24. UnityEditor.HostView:Invoke(String, Object) (at /Users/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:249)
    25. UnityEditor.HostView:Invoke(String) (at /Users/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:242)
    26. UnityEditor.HostView:InvokeOnGUI(Rect) (at /Users/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:212)
    27. UnityEditor.DockArea:OnGUI() (at /Users/builduser/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:341)
    28. (Filename: Assets/Plugins/Editor/ScriptInspector3/Si3 Extensions/Si3 UnityEventDrawer.cs Line: 198)
     
    Flipbookee likes this.
  8. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    @thienhaflash, that's very interesting! Could you please try something for me if you can reproduce that? Open Si3 UnityEventDrawer.cs and insert these lines between existing lines 197 and 198:
    Code (csharp):
    1.  
    2.                 if (targetField == null)
    3.                 {
    4.                     Debug.LogWarning("Could not find field! i == " + i + "\n" + string.Join(", ", fieldNames));
    5.                     targetObject = null;
    6.                     break;
    7.                 }
    8.  
    This will log a warning instead of throwing NullRef exception, so please show me what it says. :)

    Yeah, might be... This in particular comes from their custom inspector, not from a custom property drawer. In fact, making a custom UnityEventDrawer turned out to be almost impossible :eek: but I found a way ;) hehe. Check the code in my UnityEventDrawer, you'll be surprised how much of Reflection tricks were needed to achieve that.

    My custom UnityEvent drawer handles double-clicks and it adds a small "..." button on the right to assigned event handlers, and these two additional functions both go to the definition of the handler if the source code is available :cool: so you don't have to search for it manually! :D

    It also adds support for [Tooltip...] attribute, but that's only a side-feature to earn me some glory points ;) ... Now if I could do the same (double-click to go to definition of a method) in the Profiler window... But I haven't found a way to do that yet.
     
    Novack likes this.
  9. _Adriaan

    _Adriaan

    Joined:
    Nov 12, 2009
    Posts:
    481
    I honestly think this 'solution' is ambiguous, non-transparent, and backwards: just like it took me a long time to figure out what was causing this weird behaviour, that might be the case for others as well. People don't know that SI3 runs the code to display it's tooltip, and you can put it on the list of features, but people don't read those or didn't see the implications (like me). Having to add an attribute to stop behaviour you don't know of isn't logical.

    Aside from that, as far as I can read, my vision aligns with the concept of DebuggerBrowsableAttribute: adding the attribute enables more advanced debugging, as opposed to turning it off. Through the attribute, you can turn debugging off entirely too, but that's not the primary purpose of the attribute as I read in the docs.

    I see a couple of options:
    - disable DebugValue() for properties entirely
    - disable DebugValue() for properties by default, with the option to turn it on (with a warning that it executes code inside getters, which can F*** things up if you instantiate things through getters (which is something that a lot of devs do for singletons))
    - disable DebugValue(), with the option to turn it on in the preferences
     
    Flipbookee likes this.
  10. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    @_Adriaan, I agree! I'll disable inspecting of properties by default and I'll add an option for allowing that with a proper warning.

    Properties (and fields) decorated with [DebuggerBrowsable(DebuggerBrowsableState.Never)] or [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] attribute will still not get inspected even if inspecting of properties is allowed. Note that if you're ever using a debugger with your code you still have to decorate those properties like that, and that's unrelated to Si3. ;) Otherwise you risk to mouse-over those properties and execute their getter code unintentionally...

    P.S.: One day Si3 will become smart enough to be able to analyse compiled IL code and automatically recognize is it safe to call the getter or not. That will also be used to auto-suggest decorating "non-safe" properties with DebuggerBrowsableAttribute, :cool:
     
    _Adriaan and Novack like this.
  11. _Adriaan

    _Adriaan

    Joined:
    Nov 12, 2009
    Posts:
    481
    Awesome! Cool. I love how responsive and responsible you are! :)

    I have another feature request: most IDE's let you resolve 'unknown classes' through the context menu, giving you a list of possible namespaces that would upon selection be added to the top of the document. Simple example: I add 'public Text volumeLabel;' to my component, Text is unrecognised, I right mouse click it, Resolve > using UnityEngine.UI;, and it adds the using to the top of the document.
     
    Flipbookee and Novack like this.
  12. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    @_Adriaan, one of the reason why that hasn't been implemented yet is because it's quite a lot of work to be done in the nicest possible way. IMO that would be if the code editor offers adding using statements or namespace qualifiers to the type while typing it with autocompletion. Then it should also display a "auto-fix" button for all the types missing a using statement or namespace qualifier. These two features may both impact the performance if not implemented with care, and that's the reason I was postponing this task...

    But this:
    is not going to affect the performance at all and it's easy to do! :cool: I wonder why didn't I think of that earlier? :rolleyes:
     
    Novack likes this.
  13. Novack

    Novack

    Joined:
    Oct 28, 2009
    Posts:
    844
    Oh lordy, that would be great!

    I use it a lot, and really miss it on Si3. The editor already error-highlight the sentence missing a using statement or namespace, so if one can manually complete missing usings through an option, that would be great.

    Not sure if its on the higher load side, but removing unused usings would be interesting too (but exponentially less important).

    Also, how complex would be to open a different context menu on CTRL+. for this sort of things? Like having an entry point for stub method generation, and other small refactors.


    Just for the sake of complaining, I will say that I asked for this long time ago, in the same fashion that usually most IDEs do it, manually open context menú, and Resolve... This is why would be great to have a place where to sort reports and requests, in a place that could have constructive discussions on each thing... So as I know you have LOADS of free time, Why would not invest a couple of days implementing a system like this? :D:D:cool:
     
    Flipbookee likes this.
  14. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Yes, adding a different context menu is easy. Populating it with useful stuff - not so easy but doable. ;) Let's start with a something simple as adding using statements and namespace qualifiers to get things moving. :) Rename would also go in the same context menu, I guess?

    Yes, you did, sorry man! I guess you didn't say it in a way that sounds as easy as @_Adriaan did it :D:p

    Yeah, I used to have loads of free time, but not anymore. Now that my wife and dog moved over here, I have very little spare time, but it all goes on Si3. ;)
     
    Novack likes this.
  15. Novack

    Novack

    Joined:
    Oct 28, 2009
    Posts:
    844
    I was totally going on the fun side, as I know you never have much free time man, but Im very happy for the wonderful news! Really glad finally the wife is with you again, congrats to you guys, really happy for you :D
     
    Flipbookee likes this.
  16. _Adriaan

    _Adriaan

    Joined:
    Nov 12, 2009
    Posts:
    481
    I occasionally bump into the bug that when I try pasting while still dragging the mouse selecting a text, it simply pastes at the beginning of that selection as opposed to replacing the text as expected!
     
    Flipbookee likes this.
  17. _Adriaan

    _Adriaan

    Joined:
    Nov 12, 2009
    Posts:
    481
    Another bug that happens quite often when I remove a script:

    Code (CSharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2. UnityEditor.EditorWindow.Close () (at /Users/builduser/buildslave/unity/build/Editor/Mono/EditorWindow.cs:682)
    3. ScriptInspector.FGCodeWindow.OnEnable () (at Assets/Plugins/Editor/ScriptInspector3/Scripts/FGCodeWindow.cs:818)
     
    Flipbookee likes this.
  18. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Ah, nice catch, I can fix that!

    Cool! @thienhaflash has reported that, but didn't say when is that happening. I think I've fixed it already, so great - now I know a test case to verify that! :cool:
     
  19. NeatWolf

    NeatWolf

    Joined:
    Sep 27, 2013
    Posts:
    924
    I finally figured out why the CTRL+[left or right] function to move between words wasn't working!

    I am also using Advanced Inspector and:

    And that's actually what happens when I press CTRL+left or right, because there is a AI shortcut defined within a MenuItem attribute. I contacted @LightStriker and I hope I'll be able to use both assets together! :)
     
    Flipbookee likes this.
  20. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Hey @NeatWolf, that's cool! @LightStriker is a cool developer, I'm sure he will be able to help with that :) or you could also try to fix that if Advanced Inspector comes in source code form - search all scripts for the text in the menu to find the declaration of the menu item and remove or change the shortcut to something else. Alternatively, and this is IMHO what @LightStriker needs to do, add a "validate" method (or modify the existing one) that enables and disables the menu item depending on which window is focussed, so it's only enabled if the Hierarchy, Project, or Inspector is focussed. This will still mess up Ctrl-Arrow keys when Si3 is shown in the Inspector view, but it will work in tabs.

    EDIT: I forgot to explain, the point of disabling the menu items is that then Si3 will get a chance to process those keyboard events :)
     
    Last edited: Dec 4, 2016
    NeatWolf likes this.
  21. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    I just tried to reproduce this, but I can't make it happen. Can you describe in more details how did you do that exactly, please? :)
     
  22. NeatWolf

    NeatWolf

    Joined:
    Sep 27, 2013
    Posts:
    924
    By the way, I also managed to reproduce a bug - but this could be easily a result of an incompatibility between assets.

    1) Save a class with an error, or generate any exception on the Console
    2) Double click on the line of the console containing the error
    3) SI3 editor shows up with the line containing the error selected
    4) You can't click or edit anything until you press the right mouse button. The selection otherwise remains stuck to the line selected by the console. Sometimes when you hover on the selected line, a pointer with a gear appears (?)
     
    Flipbookee likes this.
  23. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    I see, but I use Si3 all the time and I haven't noticed that so far. Can you say what OS and Unity version did that happen with? Also, is it easily reproducible? Thanks! :)
     
  24. NeatWolf

    NeatWolf

    Joined:
    Sep 27, 2013
    Posts:
    924
    I can't check now because I have a deadline that's getting closer and closer but yes, I wrote the steps to reproduce it 2 posts ago. But as I said, It may be simply some other asset interfering.
     
  25. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Okay, good luck with the deadline! :) I'll assume it's some weird interference from another asset - let me know if you find out which one...
     
    NeatWolf likes this.
  26. LightStriker

    LightStriker

    Joined:
    Aug 3, 2013
    Posts:
    2,717
    Good idea. Will do. Very sad Unity gave no way to edit shortcuts, or give some warning when shortcuts of two asset collide.
     
    Flipbookee and Novack like this.
  27. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    Hey @Flipbookee, since I upgraded to Unity 5.5, Si3 no longer wants to open scripts in the same window as the others. Instead it always opens them in a new window.

    In 5.4 and earlier, once I had some scripts open (I generally have one window dedicated to nothing but Si3 tabs), new Si3 tabs would appear in that same window. That's not happening now.

    Is this some incompatibility with 5.5, or some weird setting I've somehow gotten misconfigured, or what?
     
    Flipbookee likes this.
  28. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Hey @JoeStrout, in Unity 5.5.0 there are two renamed internal symbols in the UnityEditor.dll that broke Si3 code for auto-docking its tabs. I was using them through Reflection and that was an easy fix since they were just simply renamed... Unfortunately, it seems like all their tabs management code went through some refactoring which messed up a few other things as well, and I managed to fix almost all of the issues. There is still one fix missing - Toggle Floating Si3 Tabs still doesn't work on OS X as before Unity 5.5.0, and that's the only reason I haven't updated Si3 on Asset Store yet... But I'll send you all other fixes right now in a private message ;)

    Anyone else needs that too? Please let me know and I'll PM you as well! :)
     
    Novack likes this.
  29. mgmhunt

    mgmhunt

    Joined:
    Apr 1, 2013
    Posts:
    63
    Console getting flooded with this...999+ etc...
    On startup. If I uninstall SI, they go away. Think it's trying to load a script at startup and failing somehow? Maybe remnant of a tab/window that has been closed and not cleared? Anyone know how to get rid of this? I remove SI, console stops, re-import SI, console fine...close down project after no changes. Open project up again and console messages startup again.... can't seem to get rid of it.
     
  30. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Hey @mgmhunt, I don't see, how is that error related to Si3? Is that the whole error message? That would be very weird as it doesn't come from any of the project's scripts. In fact, Si3 doesn't use the System.XML namespace at all, so that's also weird... Could you please send me the Editor.log? I can check that, there might be something useful in it... Thanks! :)
     
  31. mgmhunt

    mgmhunt

    Joined:
    Apr 1, 2013
    Posts:
    63
    OK, good to know SI doesn't use XML so probably not related then, more to do with forcing a recompile when I remove it. I thought it may have to do with SI since that was the 'new' thing and removing it seemed to cure it.... I'll try a full re-import and a few other avenues.

    Editor log (file unknown is a big help)...

     
    Flipbookee likes this.
  32. mgmhunt

    mgmhunt

    Joined:
    Apr 1, 2013
    Posts:
    63
    Full re-import worked for the above issue, nothing to do with SI. But while I'm here :)

    Find References.... var, var<T> don't seem to turn off and not much use to me (hundreds of var hits). Maybe a way of prioritizing search path? ie search these folders first for references?

    Also double-click script always opens a new floating window, cant seem to get them to dock next to each other? Mac Unity 5.5.0f3
     
    Flipbookee likes this.
  33. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    That was my complaint, just a couple messages up. Flipbookee already addressed it. :)
     
    Flipbookee and mgmhunt like this.
  34. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Great, thanks for the info!

    Yes, I've sent the fixes to both of you in private messages. There is still one fix missing there to make that final and to justify releasing an update for Si3 on Asset Store, and that should be available not later than the end of this weekend. In meantime, I'd really appreciate your feedback how this part works for you so far! Let me know if it works fine or if you find any issue... ;)

    If the var references don't turn off then that might be because those vars were not resolved properly, so I'd like to see those lines of code, if possible. Resolving of expression types works except in only a few cases, so you shouldn't be getting hundreds of unresolved vars (well, unless they all hit those few cases :p)...
     
  35. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Yay, I got my new MacBook :D (the old one died some time ago :p) and first thing I did was to test my fixes related to window management code changes in Unity 5.5.0... And they all work fine, which is weird because @jrDev reported toggling of floating tabs still didn't work with these fixes... :S I also tried that on a virtual machine and yes, fixes didn't work there too... So I'm totally confused now, auto-docking after hiding and showing floating Si3 tabs works on some machines and it doesn't on some other... I need your help guys, if you are with Unity 5.5.0 on OS X please let me know and try my fixes (I'll send them in a private message), check how they work for you and let me know. I'll also need to know what's your system configuration, like OS X version, ram, and processor only, let's say... Thanks in advance! :)
     
    crafTDev likes this.
  36. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    No one has responded so far and I'm still looking for better fixes...

    In meantime, here's a list of all editor extensions with more 5 stars reviews than Si3:

    1. Playmaker by Hutong Games LLC - 253 five stars reviews
    2. NGUI: Next-Gen UI by Tasharen Entertainment - 189 five stars reviews
    3. Gaia - Terrain Creation, Texturing, Population by Adam Goodrich - 160 five stars reviews
    4. 2D Toolkit by Unikron Software Ltd - 125 five stars reviews
    5. Text Mesh Pro by Stephan Bouchard - 117 five stars reviews
    6. Shader Forge by Joachim Holmér - 114 five stars reviews
    7. TerrainComposer 2 by Nathaniel Doldersum - 111 five stars reviews
    8. Rewired by Guavaman Enterprises - 104 five stars reviews
    9. Behavior Designer by Opsive - 98 five stars reviews
    10. Third Person Controller by Opsive - 93 five stars reviews
    11. Relief Terrain Pack v3.3 by Tomasz Stobierski - 90 five stars reviews
    12. Adventure Creator by ICEBOX Studios - 90 five stars reviews

    That's it, Si3 is next at position 13 with 86 five stars reviews, yay! Thank you all for this :cool:
     
    Last edited: Dec 10, 2016
    crafTDev and Victor_Kallai like this.
  37. crafTDev

    crafTDev

    Joined:
    Nov 5, 2008
    Posts:
    1,820
    Hey,

    Macbook OSX 10.11.4, Ram 8GB, Intel Iris Pro 1536 MB Processor.

    Thanks,
    jrDev
     
    Flipbookee likes this.
  38. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Thanks man! I just found a solution that works :) and I'll release it tonight... Stay tuned!
     
    John-G likes this.
  39. mgmhunt

    mgmhunt

    Joined:
    Apr 1, 2013
    Posts:
    63
    Here's the screenshot, all types getting picked up, keeps going. Also note turned off var and var<t> at top. Hotfix for tabs working BTW.

     
    Flipbookee likes this.
  40. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    That's really really strange... Don't they disappear if you turn off the #if button? If they don't then it means all those vars were unresolved, which would be really weird. Could you pick a few of those vars randomly and see what is the tooltip saying when you mouseover the var? It's strange that even something as simple as "var av = a.Value.Position;" is unresolved! Weird... Could you maybe send me your D2dColliderBuilder.cs?

    Cool, thanks! I'm still preparing a better one. This one works on all Macs :)
     
  41. mgmhunt

    mgmhunt

    Joined:
    Apr 1, 2013
    Posts:
    63
    "error unknown type". They resolve correctly in MonoDevelop. #if button makes no difference. Don't think a file will make any difference, all var's aren't resolving as far as I can tell (EDIT - found one that did resolve... see below). Project builds fine. "Unknown symbol" all over the place too. Could try importing UniRX....see screenshot, top one doesn't resolve, bottom one does?

    Screen Shot 2016-12-12 at 14.50.43.jpg

    Screen Shot 2016-12-12 at 14.52.05.jpg

    Screen Shot 2016-12-12 at 14.52.11.jpg

    Note- the var that was resolved is the wrong type for the search (ie var was resolved but shouldn't listed, also var, var<t>,#if buttons aren't making any difference to it appearing)
     
    Last edited: Dec 12, 2016
    Flipbookee likes this.
  42. _Adriaan

    _Adriaan

    Joined:
    Nov 12, 2009
    Posts:
    481
    I occasionally accidentally scroll + hold [Cmd], which increased the font size. Is there a way to turn this off, or a shortcut to zoom back to 100%?
     
    Flipbookee likes this.
  43. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    You can turn that off in Unity Preferences -> Script Inspector -> View tab:
    upload_2016-12-12_15-9-22.png
     
    Novack likes this.
  44. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Thanks a lot @mgmhunt! UniRX is an excellent source of complex C# constructs that are confusing enough for the Si3 resolver :p and can rarely find elsewhere. I'll check what is so confusing for Si3 in it...
     
  45. petey

    petey

    Joined:
    May 20, 2009
    Posts:
    1,824
    G'day, Flipbookee,
    I was just wondering if you had made any progress on code folding?
    I just really love that feature as it helps my tiny brain handle looking at scripts with a tonne of functions o_O
    Anyway, I realise you are probably a bit slammed with everything so no stress, just checkin'.
    P.
     
    Last edited: Dec 13, 2016
    Flipbookee likes this.
  46. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    I checked UniRX and I fixed a couple of things already, but I won't be able to get everything done at once. There's simply too much of the most complex C# code constructs in it, such as partial types defining extension methods (fixed), extension methods that take params parameters (not fixed), overloaded extensions methods defined in different "parts" of a partial class (not fixed), Linq query expressions returning anonymous objects (not fixed), invocations of methods with multiple default parameter values using named arguments in non-default order (not fixed), overloaded extension methods with multiple parameters of delegate type... Also resolving of symbols defined in a partial type didn't play nicely with Si3's incremental code analyser, but I think I fixed that too. :)

    All in all, UniRX is the ultimate challenge for Si3's code analyser - something I was looking for since I started working on it. Thanks @mgmhunt for this amazing link! :cool:

    Last time I showed Si3 drawing the Collapse Code buttons on #regions and now they actually work so that the regions can collapse and expand by hiding and showing the lines in in... There's still more work - those hidden lines add offset to all mappings between text positions and screen coordinates, which is the next thing for this feature... Unfortunately, Unity 5.5.0 compatibility issue and UniRX put that on hold for now, but I'll continue once I release the compatibility fix. In meantime, I have that fix completed and stored on dropbox if anyone needs it urgently! @jrDev and @JoeStrout, please take that using the same link for the patch I sent you earlier and I hope I'll complete this update on Asset Store today... Stay tuned!
     
    mgmhunt and Novack like this.
  47. eagleeyez

    eagleeyez

    Joined:
    Mar 21, 2013
    Posts:
    406
    BROKEN on Unity 5.5.0f3 Windows :(

    Assets/Plugins/Editor/ScriptInspector3/Scripts/FGTypeSystem.cs(800,67): error CS0433: The imported type `System.Runtime.CompilerServices.ExtensionAttribute' is defined multiple times

    When I delete this script I then get 100s of errors.
    Help pleaaaaaas.
     
  48. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Well, it works on Unity 5.5.0 on both Windows and OS X and there's no such error. I just googled the error, it says this is because the imported type is defined in two different .dll's with the same name and in the same namespace, which is weird and I have no explanation how did that happen. :confused:

    Did you maybe run the Automatic API Updater after updating the project to Unity 5.5.0? If yes, then revert that and it may be just fine. If that helps then avoid running the Automatic API Updater... If that wasn't the case then try just simply reopening the project, sometimes that helps. If not, then try reimporting all assets... If that doesn't help either, then I'm out of ideas for now, but maybe some else here may know how to resolve that?

    Also, send me (or post here) your Editor.log, there might be something useful in it to reveal some clue...
     
  49. eagleeyez

    eagleeyez

    Joined:
    Mar 21, 2013
    Posts:
    406

    Hi and thanks for your feedback.

    I have found the culprit, it was UPAI asset conflicting.

    How I found this.

    1. In Mono Develop goto search and then search files.

    2. Select search in directory and select your project assets folder.

    3. Search for System.Runtime.CompilerServices.ExtensionAttribute

    4. 1 minute later you see your asset and the UPAI asset.

    5. Deleted UPAI and all now working

    6. Thanks
     
    Flipbookee likes this.
  50. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    @eagleeyez cool! :) It might be worth informing the author, asset authors should never declare symbols which are already defined in .Net or Unity assemblies...