Search Unity

Feedback Component 3D Graph as a debugging tool

Discussion in 'Editor Workflows' started by AlanMattano, Mar 3, 2020.

  1. AlanMattano

    AlanMattano

    Joined:
    Aug 22, 2013
    Posts:
    1,501
    One of the most difficult things, when I open a project, is to understand how is build up. How components talk or are related to each other and how game objects are interconnected. Especially if using C# instead of a code graph editor.



    The Issue

    This is the issue explained in this long discussion


    In Unity, It is missing a graph that shows up to the user the code structure; this connectivity visually as a blueprint. That allows the user to double click into the graph and select the game object interconnection or where the components are connecting, talking to each other. And yellow icons where references are missing.



    Solution Idea

    Video Example
    I created this video as a UI example. Is not a prototype.



    Probably what I'm suggesting is to organize or inspect the project tab differently. Instead of a column layout structure, to have a hierarchical tree structure 2D blueprint. That you can switch for 2d game objects to 3D unity components with interconnection and lines (in 3D instead of 2D). Where game object lives in one particular 2D layer and on top there are multiple components stack one over the other in a 3D level layer and interconnected with other components of other game objects with a line.

    A kind of profiler graph inspector to visualizes user code interconnection.
    Code Graph with Dependency Visualization that includes game objects, or a link to it.
    A tree structure similar to the graph editor that revers engineer the user code and game object dependencies.
    That is connected with the profiler and show in red the ms is taking slow components.
    That shows up the game object name and icon. The name of the components that are in it.
    And lines that link and show the components' communication (the connections).

    Also, this allows Unity to teach and show how a structure must be done and how game objects can be named. Or where components must live inside a project.

    It can be handy a normalized nomenclature that Unity suggests or provides as a standard so that users use the same naming as a convention structure along with all the industry. So that all games are structure similarly. In this way when we are migrating od downloading code assets there is more structure organization in C# components and we know what we are expecting.

    Some random pixes examples:
    https://www.fit.vutbr.cz/research/g...Storage_1_1PointsTo_1_1Graph__coll__graph.png
    https://pbs.twimg.com/media/CbkI_fcUkAA_yN_?format=png&name=4096x4096
     
    Last edited: Jul 29, 2020
    LooperVFX and Patrick_Rainer like this.