Search Unity

[Released] uNode - Visual Scripting [Support C# Import/Export]

Discussion in 'Assets and Asset Store' started by wahid_rachmawan, Oct 18, 2017.

  1. steve_zeng

    steve_zeng

    Joined:
    Aug 6, 2019
    Posts:
    22
    Good news. The author of uNodeV2's official version has submitted it, and currently the official approval of Unity3D is under way. Now let's use the node happily together!
     
    vx4 and Stexe like this.
  2. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    uNode v2 stable version is now released on the Asset Store.

    What's New in V2:

    New Class Component, and Class Asset, and Singleton graph:
    The new graphs is designed to allowing you to more fast creating a game that allow you to execute the new graphs without need to compile it into c# ( unlike C# Graphs ).
    Advantage over C# Graphs:
    -Can be executed without need to compile it to c# scripts
    -No need to compile to referencing it's members ( variable, property, function ) each time you made a changes.
    -Auto compile to c# on build to ensure your graph is executed in native c# and get the same performance with c# scripts written by programmers.
    -Live Editable
    -Executed on reflection or native c#: use reflection for live editing and using native c# for performance, the best of both worlds

    New High Level API for creating nodes, action, and conditions
    The new HL API let you makes custom nodes with simples and the most easy way.
    The full documentation can be found on: http://maxygames.com/docs/unode/creating-custom-node/

    And much more like Improved Editor Workflow, Unity Console Integration, Improved C# Preview which will highlight generated code from selections and can ping node that's generate the code, Auto C# Generation on Build, new Graph Themes, etc.

    Asset Store link : https://assetstore.unity.com/packages/tools/visual-scripting/unode-visual-scripting-101176
    Download here : http://maxygames.com/download/
     
    Stexe, Szaruga, AthrunVLokiz and 2 others like this.
  3. vx4

    vx4

    Joined:
    Dec 11, 2012
    Posts:
    181
    Bug:
    The following graph should produce the following code:
    Screenshot 2020-11-14 155533.png

    Code (CSharp):
    1. #pragma warning disable
    2. using UnityEngine;
    3. using System.Collections.Generic;
    4.  
    5. namespace MaxyGames.Generated {
    6.     public class GameObject : MaxyGames.RuntimeBehaviour {
    7.  
    8.         public void Update() {
    9.             if(
    10.             Input.GetKeyDown(KeyCode.W)) {
    11.                 MonoBehaviour.print("pass");
    12.             } else {
    13.                 MonoBehaviour.print("failed");
    14.             }
    15.         }
    16.     }
    17. }
    18.  
    but following code gen(Semicolon should not be add to if statement condition):
    Code (CSharp):
    1. #pragma warning disable
    2. using UnityEngine;
    3. using System.Collections.Generic;
    4.  
    5. namespace MaxyGames.Generated {
    6.     public class GameObject : MaxyGames.RuntimeBehaviour {
    7.  
    8.         public void Update() {
    9.             if(
    10.             Input.GetKeyDown(KeyCode.W);) {
    11.                 MonoBehaviour.print("pass");
    12.             } else {
    13.                 MonoBehaviour.print("failed");
    14.             }
    15.         }
    16.     }
    17. }
    18.  
     
    Stexe likes this.
  4. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Will be fixed in the next update, thanks for report it.
     
    Szaruga likes this.
  5. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    After the release of version 2.0. i shyly remind you to correct the "rich text" option. :rolleyes:
    --->
    2020-11-15_22-07-11.jpg
     
    moyashiking and Stexe like this.
  6. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    I'll improve it soon.
    thanks for the suggestion.
     
    Szaruga likes this.
  7. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    uNode v2.0.2 has been released.

    changelog v2.0.2:
    -Now after importing CSharpParser add-ons, uNode will compile scripts using Roslyn Compiler
    -Now uNode C# Graphs can use 'State Graph' if inherited from 'MonoBehaviour' or its sub classes
    -Added misleading color
    -Added support for fast Enter Play Mode
    -Added support for searcing deep member for Runtime Type ( Class Component, Class Asset, Class Singleton, and Graph Interface )
    -Added option to auto compile graph on entering play mode ( the compiled graphs will not saved in your project 'Assets', it will be saved in temporary folder for debugging purpose )
    -Added overflow / recursive node detection
    -Improved Code Generator: optimization for state graph code generator which will produce better code in term of performance and better readable ( you can enable from preference )
    -Improved Editor
    -Changed port that's connected to nodes now doesn't display a name
    -Fixed errors on generating script when 'Realtime C# Preview' window opened
    -Fixed cannot build & run
    -Fixed error when trying to clean temporary graphs on build
    -Fixed error on generating project + scenes
    -Fixed error when generating node convert to Runtime Type if using compatibility generation mode
    -Fixed bug cannot convert int, byte, short, and long to System.Enum
    -Fixed bug cannot create macro asset from project view
    -Fixed bug cannot create node by drag & droping Graph Interface
    -Fixed some UI bugs

    Download here : http://maxygames.com/download/

    Fast Enter Play Mode support allows you to faster prototyping & test ideas and if combined with Auto Compile On Play and CSharp Parser sub features ( Type Patcher + Roslyn Compiler ) you can even run your graphs in native c# and editing the graph in play mode and compile it will apply the changes to all of the instance in the game ( unlike live editing with reflection ).
    Here is the video in action without cut:
     
    Szaruga and vx4 like this.
  8. vx4

    vx4

    Joined:
    Dec 11, 2012
    Posts:
    181
    Bug:
    I can't use WaitForSecond or other Coroutine node inside state graph but still work in play mode.
    Example:
    Screenshot 2020-11-22 112358.png

    error state0.png
     
  9. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    I'll fix it soon, thanks for report it.
     
    vx4 likes this.
  10. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    uNode v2.0.3 has been released.

    changelog v2.0.3:
    -Added new Graph Hierarchy
    -Improved CSharp Parser
    -Improved Editor
    -Changed initial node name from 'Start' to 'Entry'
    -Fixed recursive detection bug
    -Fixed visual debugging bug
    -Fixed cannot using inherited protected members on c# graphs
    -Fixed GUI tooltip is not displayed
    -Fixed C# Graphs cannot add 'State Graph' events
    -Fixed UI bug when using maximize and minimize

    Download here : http://maxygames.com/download/

    With new Graph Hierarchy you can easy read the graph, navigate to node, inspect, or add / remove breakpoint.
    Graph Hierarchy.PNG
     
    moyashiking, Stexe, vx4 and 3 others like this.
  11. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan
    What version of Unity uNode 2.x works with?
    For me it works with unity 2019.4.x
    Does it also work with Unity 2020.1.x?
     
    vx4 likes this.
  12. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    From 2019.1 to latest version of Unity.
    Yes it work with 2020.1.x but i recommended to use Unity LTS version.
     
    Szaruga and vx4 like this.
  13. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan

    I have some questions about uNode Runtime. Currently I'm using the "old style" uNode scripts (uNode Class), and I need some information to decide if I should switch to uNode Runtime or not.

    1. It doesn't seem to be possible to compile a uNode Runtime script to C# code, but I can use "Preview" to see what that code would look like. So I assume the code is generated when "cooking" the game, is it true?

    2. How can I access the variables and functions from a uNode Runtime script instance in other scripts?

    3. What about assigning functions to an event in the inspector? I know it's possible with functions that don't get arguments by using ExecuteFunction. But, for example, I have a slider and I want to assign a function to its "OnValueChanged" event, and that function should get the current slider value as argument. Is it possible to do it with uNode Runtime?

    4. What are the general advantages of using uNode Runtime? So far I see that I can run the script immediately after making changes to it, without the need to compile it, I can make changes at runtime and it's easier to debug. But what would really convince me to use uNode Runtime is something like the ability to rename a class, function or variable automatically in all scripts where it's referenced.

    5. Is it advisable to use both kinds of scripts (uNode Class and uNode Runtime) in the same project? And if so, in which situations?
     
    Stexe likes this.
  14. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    Sorry, only now I noticed that uNode is already able to do this, it changes names in other scripts, both uNode class (even if they are not open in the editor) and in c# scripts.
    This is a great, wonderful feature - when was it implemented? The lack of this in earlier versions of uNode I considered a huge disadvantage and handicap in relation to traditional code writing, but now that it is...
    I find it hard to believe... o_O
    dreams come true... :rolleyes:;)
    and uNode becomes an incredibly wonderful tool. :D:):D;)

    Thank you so much for this great feature. :)

    edit//
    I can see that it only works for change variable names, but not for function and properties renames.
    Will it be possible to rename a function and properties in all scripts in the future? :rolleyes:

    edit2//
    If it was possible to rename classes, functions, and properties together with references... :rolleyes:
    And when I dream about it... :rolleyes:
    Sometimes I dream that Unode has the "find all references" function like in Visual Studio... it's... :rolleyes:no, it's probably too good to be true... :rolleyes:
     
    Last edited: Dec 16, 2020
    moyashiking and Stexe like this.
  15. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Sorry for late answer because lately i am very busy.

    If you mean 'uNode Runtime' is Runtime Graph ( Class Component, Class Asset, and Singleton ) here it is:

    1. Yes you can use menu > 'Tools' > 'uNode' > 'Generate C# Scripts' to compile all runtime graphs in your project or build your project to automatically compiles all runtime graphs.

    2. Just like you're accessing regular c# scripts.

    3. Like point number 2, but if you want to trigger it from c# you can get the 'uNodeSpawner' component and then call 'InvokeFunction(name, object[])'

    4. Here is some advantage of using runtime graphs:
    -Live Editing
    -Run without need to compile
    -No need to compile every renaming class, variable, function, etc.
    -You can directly reference project asset ( prefab, material, etc ) inside of graph
    -Speed up development because there's no need to compile it.

    5. A simple example is using 'uNode class' to create a data and use Runtime graph to make the logic.

    The rename is implemented in v2.0b3: "-Now renaming variable, property, and function will refactor all reference graphs so after renaming there is no missing member"

    Hmm, i think there's a bug, i'll check and fix it soon.

    I have planned for adding it in the future, after i done with some improvement 'finding reference' will be added soon.
     
    Szaruga and vx4 like this.
  16. vx4

    vx4

    Joined:
    Dec 11, 2012
    Posts:
    181
    Bugs:
    The option "Compare return value" for State transition(Condition) block in state graph is not available:

    Condition block:


    con1.png


    State transition Condition block

    con2.png
     
    Last edited: Dec 22, 2020
  17. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Fixed in the next update.
    Thanks for report it.
     
    vx4 likes this.
  18. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan
    I still don't understand some of that, so I have more questions.

    1. I tried to use the 'Generate C# scripts' option, but I'm not sure what happens when I do it. Where are the generated scripts?

    2. The problem is, when I have a normal C# script, it's a component of the type defined in the script, so I can use GetComponent<type> to access it and its members. But when I use a Runtime Graph, it's a component of the 'uNode Runtime' type, which is the same class for all graphs of this kind, and doesn't have the members defined by me. So I still don't know how to access them.

    3. Can you explain what uNode Spawner does?

    4. If I can directly reference a project asset inside of graph, what happens when that graph is compiled to a C# script?

    5. Another problem I have with Runtime Graphs is that I can't define things like interfaces and attributes for it. Especially interfaces are important, because I use them for some events, for example detecting that the mouse cursor was moved over an object (IPointerEnterHandler).

    Generally, it seems that using Runtime Graphs requires a different approach than the way I was using uNode so far, so probably I'm doing some things wrong...
     
  19. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    1. The generated script located on 'Assets > uNode.Generated' folder

    2. If the Runtime Graph is a Class Component: you can directly connect a GameObject or Component or its sub classes to the Runtime Graph type to get it ( it same as GetComponent<T> ).
    This is a old picture to invoke Graph Interface method but accessing Runtime Graph member is same like this:


    3. The Runtime Graphs is like a c# script asset in your project and the uNode Spawner is a attached component to instantiate the Runtime Graph to the GameObject.

    4. In runtime graph if a graph has reference a project asset the generator will generate a new unique variable and the generated variable will be assigned automatic when the graph is spawned with uNode Spawner.

    5. C# Interface / Attribute implementation is not supported in Runtime Graph because the graph can be run with reflection and reflection is not support it. The Runtime Graph can only implement interface from Graph Interface.
     
    Stexe, Szaruga and vx4 like this.
  20. TharaxisUnity

    TharaxisUnity

    Joined:
    Apr 2, 2015
    Posts:
    3
    Ever since installing uNode on Unity 2020.2.1f1 on Windows I cannot remove any assets without the editor complaining that "Some assets could not be deleted. Make sure nothing is keeping a hook on them, like a loaded DLL for example.". If I click Ok then the file remains, Unity proceeds to rebuild its assembly, and then if I delete the file again, I still get exactly the same error, but clicking Ok then doesn't rebuild the assembly and the file actually does get deleted

    This is EXTREMELY annoying and cumbersome. It appears that uNode is holding onto asset file handles or something when it shouldn't be.
     
  21. TharaxisUnity

    TharaxisUnity

    Joined:
    Apr 2, 2015
    Posts:
    3
    Additionally when manipulating graphs, moving links, etc. I often get multiple errors like "ArgumentException: Getting control 12's position in a group with only 12 controls when doing repaint.". This seems to happen in the ItemSelector.cs script.
     
  22. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan
    Thank you for trying to explain how uNode Runtime works.
    However, I could not get it under control, it is incomprehensible to me.
    I will stick to the old proven method of work, i.e. - uNode Class. My only regret is that I do not know what I am giving up, because any advantages and disadvantages of working with uNode runtime remain a mystery to me.

    By the way, a small request / question - could the values displayed during debugging be displayed "above" the nodes? Often the "cables" are short and now the values hide under the nodes, which is bothersome.

    Despite my difficulties with learning how uNode Runtime works, I am still very happy with how uNode Class works. And I'm looking forward to the newer versions of uNode.
     
    vx4 likes this.
  23. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    I will fix it soon.

    It will be fixed in the next update.

    Thanks for report it.

    I will improve it soon.

    Thanks for the suggestion.
     
    Stexe likes this.
  24. SDScott_

    SDScott_

    Joined:
    Aug 4, 2016
    Posts:
    1

    Sorry to raise this post from the dead , but as a former Bolt user who recently purchased uNode I think you should know why. When Bolt was released free I started looking at Visual Scripting tools, I am a indie developer, its just me as main programmer, an artist , and a friend who helps out with game design. I was looking for something that would help bridge the gap between C# code and game design. This would free me to code the inter working of the game while the artist and the game designer worked on the rest. Bolt 1 seemed like a good choice until you really start to use it. Then its weaknesses really show, it makes it very hard to make clean integrations. Bolt 2 had a lot of promise with C# code generation and classes, However in a recent post Unity announced they would not be releasing Bolt 2 , their post had a lot of langue that made it clear the visual scripting they plan to develop will be at a very high level. It will be aimed more at people who know NO C# and have no interesting in learning it. After reading this I decided to abandon Bolt and find a visual scripting tool, that had better support for C# integration and was regularly updated. I spent a lot of hours researching all the visual scripting tools on the asset store, reading the documentation and watching YouTube videos. Turns out one of the responses to the Bolt 2 announcement post lead me to your asset. They pretty much said Unity's choice to abandon Bolt 2 will leave a gaping hole for uNode to fill. I looked the asset up and read the documentation and I have to say this is an impressive asset. It strikes the perfect balance for me between code and visual scripting. once I fully get my head around it I plan to buy 2 more copies for the others I work with. This asset 100% should not be free, the price you are charging is very reasonable for the quality of the asset and the number of updates you release. I expect that Unitys built in Visual Scripting will fall way short, especially now that they are a public company and will be forced to put profit and money over quality to please their corporate overlords, who they sold their souls to. uNode has achieved a nice balance and I feel it will be a useful asset even after Unity releases their mess of a visual scripting engine. There is really nothing else like this asset on the Asset store and I hope you continue to develop it.
     
    Last edited: Jan 1, 2021
    Szaruga and vx4 like this.
  25. TharaxisUnity

    TharaxisUnity

    Joined:
    Apr 2, 2015
    Posts:
    3
    I too was looking forward to Bolt 2 and this was the primary reason I purchased Bolt 1, with Unity now taking over and essentially canning the project, shifting its direction in a way I am not interested in, I gravitated towards uNode due to recommendations within the thread discussing alternatives given the cancellation of Bolt 2.

    I've only used uNode for a few days, and I think it's a tool I want to use, but it's not a tool I can use *just* yet.

    I think uNode has a LOT of promise, and I think it's a fantastic tool. However right now I'm not going to be using it for any serious projects because it's just too buggy and inconsistent, to the point where it slows down development unnecessarily.

    Debugging especially is just extremely clunky and cumbersome. For the life of me I couldn't figure out how to live preview a Macro that was used within a currently running Runtime graph. I could only debug self or any running instance and neither worked. I could see the upper-level Runtime graph running, but when I double clicked the Macro to enter it, it was completely dead and no debugging whatsoever. Value previews on running connections don't always show, proxies don't show values, console errors when working on graphs, it seems to sometimes cause slowdown and stutters within the Unity editor, some of the inspector editors are glitched out and incorrectly aligned, and so on.

    Documentation is also very threadbare and poor. It doesn't really adequately describe the various concepts. I'll chalk that up to English perhaps not being the author's native language, but then I would recommend he find someone who can help on that side and massively expand the documentation with solid examples and walkthroughs.

    This has the potential to be one of the best visual scripting tools in Unity, but it has a bunch of quality of life issues that need ironing out before it can really be used.

    I'll revisit it in few updates and hopefully at that point the things that get in the way will have been ironed out. While I'm more than able to do everything in code (and more quickly), I am tempted to use visual scripting almost exclusively if it would help other future team members, whether development or otherwise, quickly be able to visualise and try out ideas, so I hope uNode improves so I can make use of it.
     
    Last edited: Jan 1, 2021
    Szaruga and Stexe like this.
  26. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    I am aware that uNode can be used in many different ways.
    An interesting fact is that I have no idea how to use uNode runtime (requires a different approach to code development).
    But despite this, I am able to create a rich and working game by arranging nodes in the uNode class and compiling them into pure C # scripts.

    I am aware uNode has bugs and holes. However, I have learned to deal with them and I am very pleased with the opportunities it gives me. I am a person who perceives the world very visually, visual perception of knowledge, logic and structure is much more absorbable by me. Additionally, I was looking for a tool that is close to normal C # coding.
    And uNode meets both of these conditions more than the alternative tools I know.

    If uNode ceases to be developed, I will lose the ability to create games nicely and efficiently.

    As for uNode free distribution option ... it's complicated.
    On the one hand, this could increase the user base and translate into profits for the creator. But on the other hand, there are not always favorable opportunities and circumstances.
     
    vx4 likes this.
  27. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Thank you the the great review. Of course for now i am not gonna make uNode to be free and i will continue develop it.

    -Macro debugging is not currently supported right now, it will be supported in the future version.
    -Value preview don't always slow maybe because the connection is not entered or some bug in GUI, please provide us more information for i can fix the bug in the next update.
    -Proxies don't show values: i will fix it soon or in the next update.
    -Console errors when working on graphs: i've already fix it in the next update.
    -And for others bug if you can please report with more information like screenshot, etc.

    And yes documentation is not good enough but i will trying to improve it from time to time.

    Thanks you for the feedback and report a bug.
     
    vx4 and Stexe like this.
  28. Stexe

    Stexe

    Joined:
    Feb 2, 2014
    Posts:
    217
    @wahid_rachmawan : I'm curious on your thoughts on other visual scripting tools. What is your opinion of Bolt, FlowCanvas / NodeCanvas, and LogicForge?

    What sets uNode apart from them and where do you see uNode in the future?
     
  29. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Sorry i don't know what to say because i am not use those tools but i think Bolt, FlowCanvas and uNode is quite similar from the feature it offer and the major different is that uNode can visually create c# codes but doesn't support for live editing ( for the c# graphs ).
     
    Stexe likes this.
  30. Stexe

    Stexe

    Joined:
    Feb 2, 2014
    Posts:
    217
    Gotcha. LogicForge has C# generation. Thought you might use some of the competitors to see what they do and learn from their implementations to better improve your own.
     
  31. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Ah okay, Thanks for the suggestions.
     
    Stexe likes this.
  32. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    uNode v2.0.4 has been released.

    changelog v2.0.4:
    -Added undo support when performing Place Fit Nodes
    -Added support for debuging Macro for Runtime Graphs
    -Added support for displaying State Graph in Graph Hierarchy
    -Added visual debug values for proxy port
    -Improved Editor
    -Improved ItemSelector:
    Added Favorites feature
    Added ability to explore namespaces
    Added ability to search item in all namespaces, specific namespaces, and on favorite namespaces
    Added ability to navigate with keyboard
    Improved search performance​
    -Fixed regions aren't moving nodes properly
    -Fixed error on generating Set Value with debug mode
    -Fixed some bug on performing Place Fit Nodes
    -Fixed crash / freeze when patching graph
    -Fixed graph attributes is not serialized properly
    -Fixed annoying error message when deleting asset on newer unity version
    -Fixed most of others reported bugs

    Download here : http://maxygames.com/download/
     
    vx4, Szaruga and Stexe like this.
  33. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan
    Topic:
    "Little things that can be improved"
    2021-01-05_04-11-26.png

    In the image below you can see how yellow (vector2 type) turns blue (object type). Everything is obviously correct, but the color change is misleading because we are dealing with vector2 all the time (for me it is yellow).
    Suggestive visibility is at the core of a tool like uNode - therefore colors shouldn't suggest a type change if it doesn't change.
     
  34. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    I will improve it soon, thanks for the suggestions.
     
  35. fabiopov_1

    fabiopov_1

    Joined:
    Jan 2, 2018
    Posts:
    11
    Hello, a little bug report
    I think debug Drawline doesn't seem to work as it should, it seems that the code generated for the color is wrong

    Capture.PNG Capture_2.PNG
     
  36. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Thanks you for report it, i will fix it soon.
     
  37. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
  38. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    vx4 and Szaruga like this.
  39. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    Last edited: Mar 9, 2021
  40. Alienmadness

    Alienmadness

    Joined:
    Sep 6, 2012
    Posts:
    109
    Last edited: Mar 10, 2021
    mountblanc, vx4 and Szaruga like this.
  41. kotor

    kotor

    Joined:
    Dec 3, 2013
    Posts:
    140
    Why I am keep getting this error :

    ArgumentException: Getting control 7's position in a group with only 7 controls when doing repaint

    It pauses it after that. I have to un pause to continue.
     
  42. kotor

    kotor

    Joined:
    Dec 3, 2013
    Posts:
    140
    Why document is not searchable. You should have PDF document so that the use can search. I was wondering how do you subscribe to an event from Third party asset. For example in Ultimate Character Controller I want to subscribe to OnDead event.
     
  43. kotor

    kotor

    Joined:
    Dec 3, 2013
    Posts:
    140
    I have another question.
    In Opsive Ultimate Character Controller fires events and you can handle it you own c# script. For example if the player dies you can write your own OnDeath method. In Ultimate Character controller, in the inspector (Health component) you can configure which script and method should be called. I think UCC is using the method signature and display which method should be called. When picking c# script I can do that but id I pick uNode that method is not showing up untill you compile it to c# Script.

    I asked couple of more questions earlier not getting any response. I hope the project is not dead
     
  44. mountblanc

    mountblanc

    Joined:
    Sep 24, 2015
    Posts:
    93
    Nicely done Alienmadness! I almost willing to give visual scripting an other try now.

    I have bought different assets in the past but i keep jumping back writing my code.
    As i do not want to waste more money in yet an other try due to getting disappointed with others including Nottorus and Bolt (Bolt i bought because of Bolt 2 but that V2 got canned by Unity and by the time unity has a C# generated version we are probably be in 2024 or beyond. I have seen both you @Alienmadness and @Szaruga around in Nuttorus among others so if you are both here uNode must have some promise.

    However the uNode lacks documentation and the documentation there is, is limited and out of date with V1 screenshots and stuff. For example i do not understand the debug functionality. how it works and if i can watch it and change it real time as in Bolt. or when and how is C# generated and many questions i do have that i can only really get answered by buying the asset but not daring to buy it because not knowing if its yet an other disappointment for me. Perhaps i wait for when its on sale but even then i have my thoughts.
    The strong point of Bolt was its documentation and examples. I even used bolt 1 once to get me to write an helicopter movement system that i had a hard time to get working in code because the code was heavily relaying on different variables. Using bolt i could tinker with the fields until it worked as intended and then i rebuild the C# code and removed Bolt again from my project.

    But its perhaps also an personal thing.
    4 or 5 lines of code in C# gives a screen full of nodes in visual Code making the code much harder to read.
    I get the feeling once you have a big project the benefits will out way the short comings giving you a much better overview then C# would but i never get to get so far using Visual code before.
    I have been programming for 32 years or more so perhaps that's the problem for me to really throw my soul into it. Like you have.
     
    vx4 and Szaruga like this.
  45. Alienmadness

    Alienmadness

    Joined:
    Sep 6, 2012
    Posts:
    109
    i strongly suggest checking the discord channel. you will get much more responsive answers and the community is more engaged than the forum.
    the short answer to your question is, yes you have to compile the script initially to generate the c# file (if your using the c# component), before it cant see other scripts. in general i haven't had much problems with it, but haven't started using it a lot in-depth with other "stuff" on the asset store.
    discord link: https://discord.gg/8ufevvN
     
  46. Alienmadness

    Alienmadness

    Joined:
    Sep 6, 2012
    Posts:
    109
    Hey mountblanc
    Ya i used Nottorus a lot ,but since its not supported and no patches are coming out, i've decided to make the jump myself. i really didn't have many issues with Nottorus, but i do like the vertical layout of uNode much better. seems to match up with lines of code for me, and creates much less node spaghetti.

    ya downside is that the documentation, its a work in progress, i believe Walid is working on enhancing it, but he more focused on making the tool better, rather than updating the docs. Which is one reason i did the video series, it helped me learn the tool, while hopefully providing some benefit for others at the same time.

    i find the mess of nodes a bit less so with uNode, because of both the vertical layout and the notes you can put around your code (aka Regions), very helpful and can be different colors as well.

    uNode has 3 main ways of creating nodes. the classic C# Class Component, same as a node based c# script, which generates c# scripts (also similar to Nottorus), uNode Runtime, and uNode Class component. Each have their pro's and cons.

    i made this in hopes to use it in a tutorial at some point
    upload_2021-3-16_20-27-34.png

    I didnt play with Bolt much, i really wanted something that would generate c# code and if so desired, remove the app (unode) and continue to use the c# scripts, which you can do with uNode (although honestly havent tested it yet).

    the class component does support live editing and does have the capability to watch the flow through the graphs, while the c# component doesnt have live editing. and i have yet to get the flow working in the c# component, but my understanding is that it should work like that. possibly a bug... which i was going to post to the discord. as i mentioned to @kotor, the discord channel is very helpful and some samples and examples, would suggest joining, to see if its something you would find worth buying.

    if i had 32 years of coding under my belt, i wouldnt be using a visual scripting solution. :=) but alas, i took some pascal classes way back in high school and barely remember anything useful from that time. so this seemed like a better way to get something done, rather then fighting the code. i can never seem to remember where to put the () or "."
    anyway hope this helps
    cheers.
     
  47. mountblanc

    mountblanc

    Joined:
    Sep 24, 2015
    Posts:
    93
    Thanks for your detailed responseAlienmadness,

    I have watched the first episode and it made it a bit clearer for me. I joined the discortd channel but i havent checked it out yet. I think this weekend ill make up my mind :)
    Well if you have projects (in my case not Unity related) with hundreds of classes size ranging from 50 to 2000 lines of code, It's hard to keep the overview and i am always looking for ways to make the overall picture more clear.
    When you get older its getting harder to remember stuff and learn new ways. And i think visual scripting has potential.
    It is looked at as a programming tool for noobs but i think in the long run it can have its benefits for big projects. Aldo so far i haven't dared to get that far. As the past have shown with both Bolt (taken over by Unity wich i bought for V2.0 that's dropped) and Nottorus and UScript (not used that one)

    if support is dropped your in the water. What also is a thing that is worrying me is that Graph view that's used by UNode is experimental and will be replaced by an alternative Graph by unity (Because they need a different setup for their Bolt recreation they are working on)
     
  48. rizenmusic

    rizenmusic

    Joined:
    Oct 2, 2019
    Posts:
    23
    That's exactly what I've been thinking. I'm using Playmaker right now but many people say that uNode is a great tool that can generate c#, but the thing that Graph function is experimental is bothering me.
     
    vx4 and mountblanc like this.
  49. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    The question of what is more readable, traditional code or nodes?
    examples:
    2021-03-17_09-35-49.png

    2021-03-17_09-46-51.png
    Everyone can answer differently. For me personally, in most cases - nodes are more readable. And arranging nodes gives me pleasure, comparable to that of a child by arranging Lego blocks. (Anyway, as a child - when I drew a problem on a piece of paper - I understood it better).

    I have been working with uNode for a long time, but I only use uNode Class, I arrange nodes and immediately convert them into C # code - so my whole project from the beginning to the end uses ONLY the traditional C # code (but generated before uNode based on what I will arrange from nodes) - fourth / last way from @Alienmadness table --->
    I can't use uNodeRuntime (similar to Bolt mode) or debug - it's too hard for me;)

    In my opinion, the usefulness of the tool and the question of what is better should be considered on an individual basis.
     
    Last edited: Mar 17, 2021
    mountblanc likes this.
  50. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    Maybe that's why in Unity 2020.3 there are such problems with uNode? --->
    2021-03-17_10-26-28.png
    There are no such errors in Unity 2019.4, I suspect that it is related to what you write about.

    Well now I started to worry too. :oops:
     
    Last edited: Mar 17, 2021
    MP-ul and mountblanc like this.