Search Unity

Question What's the best way to create a customized flow graph in Unity at now?

Discussion in 'Visual Scripting' started by likemango, Sep 28, 2023.

  1. likemango

    likemango

    Joined:
    Dec 26, 2018
    Posts:
    24
    Here i have summarized the graph eidtor api and some tools, I hope you guys leave your comments and help me out of my trouble(like a swampland..)

    First of all, let me describe the key features that i want to implement in graph editor:
    1. A customized unity asset could be edited and saved by the customized graph editor; Graph editor have many customized nodes, including one node can link(contain) another customized unity asset(This helps me build a hierarchy structure of the graph, when i double click that node, the linked asset could be opened in other graph editor interface).
    2. At runtime, when game is running, I hope graph editor support a feature that i can popup a small panel on each node and show it's running state such as ACTIVATED/FINISHED state.At meantime, i hope it show up a flow path from begin node to current running node(This helps me to understand the state of all the nodes and its history flow path, just like UnrealEngine Blueprint).
    3. I could create one or more customized panel dock to the graph editor, such as a hierarchy outliner;
    4. I could customize the node's logic/apperence/connnection rules/properties.
    Here, I have found some api:
    1. Unity.Experiments.GraphView;(https://docs.unity3d.com/ScriptReference/Experimental.GraphView.GraphView.html)
    2. GraphToolsFoundation(GTF);(Unity.Experiments.GraphView and GTF are the same thing?) (https://docs.unity3d.com/Packages/com.unity.graphtools.foundation@0.11/manual/index.html)
    3. Unity UI Toolkit (
      )
      (Question is what's the difference between them three, inhert from? experimental? new and old?)
    Here, I have found some tools:
    1. XNode(
      )
    2. UI Node Connect4(https://assetstore.unity.com/packages/tools/gui/ui-node-connect-4-245389#description)
    3. NewGraph (https://github.com/Gentlymad-Studios/NewGraph)
    4. NodeGraphProcessor (https://github.com/alelievr/NodeGraphProcessor)
      (Question is what kind of api of those tools used?)
    I want to create my customized graph editor for my game company used, so i want it to be stable, flexible and greate scalable, I have done it in Unreal Engine before(produced by imitating the principles of blueprints), Now I turn to do it in Unity again.

    For those api and tools, I'm confused, I hope you could give me some advice on those questions and propose a stable useful technical route that i can impelment my customized graph editor. Thank you guys, leave you comments.
     
  2. termway

    termway

    Joined:
    Jul 5, 2012
    Posts:
    84
    Hi there,

    Experimental.GraphView is a visual element for graph grids that you see in a lot of editor windows (ex: Shader Graph https://github.com/search?q=repo:Unity-Technologies/ShaderGraph GraphView&type=code).
    But it's marked as experimental and might change in the future.

    I don't think what you are looking for currently exists at the moment. There are several potential solutions mentioned but everything has limitations:
    • VisualScripting (Bolt) has it own graph solution but in my opinion is engineered and complex, it has a lot of weird bug and limitations that Unity probably won't fixed. It can still be used to check how they do work with the editor window.
    • NodeGraphProcessor uses Experimental.GraphView and is not maintained anymore but I think it can be used for you;
    • NewGraph is a new library that does not rely on Experimental.GraphView and is still maintained and is probably a good fit for you too.
    • UI Node Connect 4: I don't know about this one
    The GraphTools Foundation package is the new way to do it and is maintained by Unity (https://docs.unity3d.com/Packages/com.unity.graphtools.foundation@0.11/manual/index.html). It will likely become the official solution for graphs.
    https://forum.unity.com/threads/graph-tool-foundation.1057667/page-2#post-8098055
    https://forum.unity.com/threads/graph-tools-foundation-com-unity-graphtools-foundation.853516/
    So it's probably a good idea to take a look at that.

    Unity UI Toolkit is the general solution for UI, so if you want to build something from scratch you can start there.
     
    likemango likes this.
  3. S2NX7

    S2NX7

    Joined:
    Aug 17, 2021
    Posts:
    39
    Here are you talking abut visual scripting?
     
  4. likemango

    likemango

    Joined:
    Dec 26, 2018
    Posts:
    24
    Such like that( but more like customized dialogue editor, state machine editor) I want to build a customized graph editor to accelate game asset creation(e.g. Narrative / Animation)
     
  5. likemango

    likemango

    Joined:
    Dec 26, 2018
    Posts:
    24
    Thanks for your lovely reply. For your link here, i will not use GraphView(deprecated), and i gone to see GTF and UI toolkit. At same time, tools like NodeGraphProcessor which use GraphView API will also become meaningless(NewGraph may be a good start).
    By the way, do you know how is it going about GTF, when will it be released not as experimental?
     

    Attached Files:

    Last edited: Oct 7, 2023