Search Unity

[RELEASED] Debugging Essentials (5 essential tools to boost development)

Discussion in 'Assets and Asset Store' started by eagle555, Jul 23, 2020.

  1. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Debugging Essentials is available on the Asset Store

    22% Launch discount, from $45 for only $35...

    - Compatible with Unity 2017.x , 2018.x, 2019.x and 2020.x.
    - Works with >.Net 2.0, Mono, IL2CPP and ECS(DOTS).
    - Works with Native Rendering, URP and HDRP.
    - Supports all platforms (PC, Mac, Linux, Android, IOS, WebGL, etc).
    - Can be used in Editor and Build.
    - Source code included.



    Screenshot1.jpg

    As lead programmer of our game D.R.O.N.E., with only 6 devs, I'm responsible for most core-coding including the network-code which I created from scratch. Our game is an arena shooter/builder multiplayer and we release it step by step through Steam Early Access. We are using our own Peer2Peer network architecture with instant host-migration in conjunction with Steam's free relay networking.

    I had a tough time dealing with our community's reported bugs and issues where standard build-in tools weren't enough.

    Debugging Essentials contains 5 crucial tools which will save you tons of debugging hours and headaches, while making developing a lot more faster and enjoyable:

    How often did it happen to you? You're in play mode or in your build and you run into this particular issue/bug. What's happening?? Ah I need to look at the state of these variables...Eh not possible without a restart => debug or attach => recompile => play or rebuild => reproduce => etc...There goes your time...

    E.g. I was dealing with some very tricky networking/host migration bugs and was losing a lot of time making new offline test builds. Until I had enough...What if you could just easily navigate/search and deep inspect any little non-exposed variable at any moment in time?

    This saved me tons of my time while making debugging a lot more enjoyable:

    Runtime Hierarchy Window
    - NOTHING is hidden and EVERYTHING is selectable at any moment in real-time.
    - Search/navigate through all your Scenes.
    - Search/navigate all Assemblies with their classes and real-time static values sorted in categories.
    - Make/search and compare memory snapshots which get sorted by type and category.
    - Multiple search conditions on name/type with intuitive search display modes.
    - Disable/Enable/Delete/Duplicate any GameObject and Enable/Disable any component to e.g. test performance in a build.
    - ScrollView culling, can handle thousands of objects.

    Runtime Deep Inspector
    - NOTHING is hidden and EVERYTHING is inspect-able at any moment in real-time.
    - Inspect ALL members (fields/properties/methods) on any Assembly- and Memory Object/GameObject/Component/Class/Struct, etc.
    - Deep Inspect ECS (DOTS).
    - Deep Inspect inside Arrays, Lists, Queues, Dictionaries, HashSets, etc.
    - Deep Inspect into unlimited levels.
    - Filter based on Fields, Properties, Methods, Inherited, Declared, Static, Instance, Public, Private and Protected.
    - Change primitive values.
    - Execute methods with primitive arguments.
    - Multiple search conditions on name/type with intuitive search display modes.
    - Deep search into multiple levels.
    - ScrollView culling, can handle thousands of members.

    Runtime Camera Navigation
    - Override your camera at any moment to navigate through your game view with the same controls as in the Editor Scene View.
    - GameObject selection and focus for Deep Inspection.
    - Follow moving GameObjects while still being able to navigate around.
    - Time Scale adjustment to slow-mo or pause your game for Deep Inspection. While the camera keeps working the same. We used this feature to take our D.R.O.N.E. Steam Store Page screenshots.

    Want to easily adjust/execute anything at runtime with your own created commands? Want to see Unity's or your own logs at runtime? I'm using the Runtime Console all the time for testing/debugging in conjunction with the Runtime Hierarchy and Deep Inspector.

    Runtime Console
    - Easily create your own commands for methods, properties, fields and delegates by only attaching a simple attribute.
    - Command parameters and default parameters.
    - Static and instance commands.
    - Admin and non-admin commands.
    - Remote network commands.
    - Command suggestion, auto-completion and displays values on fields and properties.
    - Shows Unity logs in Editor/Build.
    - Filter based on Commands/Logs/Warnings/Errors and Exceptions.
    - Show/Hide Stack.
    - Search for any logs with certain text.
    - Supports logging on other threads.
    - Quick links to Editor/Build logs.
    - ScrollView culling, can handle millions of logs without affecting performance.

    Can you read the player build Log files to find issues? With my HTML Log files you don't want to look at them again...
    LogCompare.jpg

    HTML Debug Logs
    - Log files can be can opened in any browser.
    - Logs display inside a frame and time header so you can see when something happened.
    - An actual layout on the logs instead of a bulk list.
    - Log colors make them easy to spot while scrolling through.
    - Stacks lines are nicely sorted.
    - Supports logging from other threads.
    - Multi-threaded, writes the log file from another thread.

    Another issue solved => Player: "I had an issue with the game last night" => Me: "Can you send me your log file?" => Player: "Here it is" => Me: "It's from today, it got overwritten...".
    - Logs are saved by version and date, while normally build logs get overwritten with restarting the game.
    - Logs can automatically be deleted after x days.

    Screenshot6.jpg Screenshot7.jpg Screenshot10.jpg
     
    Last edited: Aug 31, 2020
    JoNax97, docsavage, Akshara and 3 others like this.
  2. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    reserved...
     
  3. KeithBrown

    KeithBrown

    Joined:
    Apr 1, 2017
    Posts:
    191
    I just picked it up. I own all your other tools and thought a complete set would be nice. This one will definitely get used alot.
     
  4. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Thanks for pickup it up :) Let me know what you think about it...
     
  5. jdtec

    jdtec

    Joined:
    Oct 25, 2017
    Posts:
    302
    Looks very impressive. Curious to see some examples of you inspecting DOTs data.
     
  6. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Yes will post some today/tomorrow...
     
    jdtec likes this.
  7. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Took a bit longer, as needed to do some updates for support. Basically all Worlds are accessible in Assembly mode. The entities themselves are stored in NativeArrays with pointers, currently working on being able to inspect pointer arrays, think that should be possible...Will be in the update then for next week.

    upload_2020-8-7_10-57-42.png
    upload_2020-8-7_10-50-52.png
     
    jdtec likes this.
  8. nsxdavid

    nsxdavid

    Joined:
    Apr 6, 2009
    Posts:
    476
    Cool stuff!

    A couple of things:

    Can it be made to suppress the Unity built-in console? When I get an error (while using "Developer Mode" in a build) it pops up both that and your console. Obviously, I only want yours. :)

    Also, I would like some events I can hook for when the console or hierarchy window are opened/closed. I have to do some gnarly management of our cursor locking and can only do so with such hooks. I've added ones of my own, but that kind of prevents me from easily installing updates you make. Figure others could use this as well.
     
  9. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Thanks for contacting. Very good point, I'm also wondering about this. I found this one so far:
    https://forum.unity.com/threads/how-can-i-remove-development-console-window-in-built-game.229171/

    Yes that are all great suggestions, will implement all for you now...
     
  10. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Oki I implemented it and it (version 1.08) is live on the Asset Store...Can also toggle it from the Runtime Console with `console.disableUnityDevelopmentConsole` command:

    upload_2020-8-11_7-41-8.png

    As for the events you can subscribe/unsubscribe to:
    RuntimeConsole.onSetActive
    RuntimeInspector.onSetActive

    I also show all events in the Unity Inspectors now...

    Let me know if everything works...
     
    Last edited: Aug 11, 2020
  11. nsxdavid

    nsxdavid

    Joined:
    Apr 6, 2009
    Posts:
    476
    Wow... that was fast. Great work! Will grab this, thank you!
     
  12. insominx

    insominx

    Joined:
    Jan 23, 2012
    Posts:
    32
    @eagle555 This looks very promising and I'd like to use this inside my Hololens app. Is there a way to display everything on a world canvas? If so, how?
     
    Last edited: Oct 6, 2020
  13. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Hi, currently it's not possible. But I have this on roadmap...
     
  14. Meceka

    Meceka

    Joined:
    Dec 23, 2013
    Posts:
    423
    Hello, just wanted to let you know that the name "Library" in folders is ignored by default in Plastic SCM and it might be being ignored from other version control software as well.
     
  15. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Hi, thanks for telling. I have renamed it...
     
    Last edited: Nov 3, 2020
  16. Mandelboxed

    Mandelboxed

    Joined:
    Apr 17, 2015
    Posts:
    50
    I second the request for world-space!
     
    insominx likes this.
  17. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    I'm testing it atm. Can you come to my Discord server to help test it?
    https://discord.gg/HhepjD9
     
  18. Huacanacha

    Huacanacha

    Joined:
    Aug 16, 2013
    Posts:
    60
    Hi, I assume this uses UGUI for the UI? That would mean it isn't compatible with UI Toolkit as the new UI system renders over UGUI. Is there a plan to support UI Toolkit in the future?
     
  19. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Hi, thanks for contacting and good question. It uses the legacy GUI which doesn't use any GameObjects, which is better for debugging, performance and memory scans.
     
    Huacanacha likes this.
  20. jasons-novaleaf

    jasons-novaleaf

    Joined:
    Sep 13, 2012
    Posts:
    181
    @eagle555 Hi trying to figure out how to use this with ECS/DOTS. I created a simple scene with a few gameobjects converted to entities. using the debugging essentials prefab I don't see any of these entities/components/systems shown in your playmode gui.

    could you provide a short example on how to do so? I'm using v1.18
     
  21. peeka

    peeka

    Joined:
    Dec 3, 2014
    Posts:
    113
    Hi in the hierarchy it doesn't display dontdestroyonload scene for me, is that normal?
     
  22. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    Considering this asset for VR development. Any updates on that world-space Canvas version (or other experience/comments on using it in VR)?
     
  23. LunaTrap

    LunaTrap

    Joined:
    Apr 10, 2015
    Posts:
    120
    This asset looks like an amazing tool, bumping for visibility!
     
  24. ge01f

    ge01f

    Joined:
    Nov 28, 2014
    Posts:
    121
    How do I inspect things inside the DontDestroyOnLoad hierarchy? They seem to be missing. I have to move items out of their hierarchy before building to inspect them in the Stand-Alone.

    Is there a way to inspect that? They dont show up in the Scene, and I dont see it in the documentation?
     
    Last edited: Aug 5, 2022
  25. Reign_of_Light

    Reign_of_Light

    Joined:
    Oct 15, 2014
    Posts:
    46
    In Unity 2022, I'm constantly getting these errors when the "Debugging Essentials" object is part of the scene. Apparently, Unity 2022 has become stricter in regard to the security of network connections. Could you maybe update the package to use secure connections or offer an option to disable networking?

    (Also, the warning message hints at an option to disable these security checks, but so far I could not find it anywhere, unfortunately..)

    EDIT: Apparently, you got an advertising element in your package which is causing this. After commenting out instantiation of class "DEProducts" the errors disappear.

     

    Attached Files:

    Last edited: Dec 26, 2022
    hopeful likes this.
  26. JuanJSAR

    JuanJSAR

    Joined:
    Feb 21, 2014
    Posts:
    47
    Hello everyone, does anyone know what to do to make it work in WebGL? But it does not show me any error or message.