Search Unity

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

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

  1. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    Can you explain why DOTS will be supported in EventSheets, and not in graphs? What's the cause of this decision and what advantages and disadvantages it will give? Also, does it mean that the entire game will have to be made using EventSheets, or I will be able to use graphs where it doesn't directly use the DOTS features?
     
  2. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Thanks.

    Eventsheet is still a graph but there will have new hierarchy based editor like in graph explorer but it will be much more robust.

    Because this features is still under research i still don't know exactly advantage and disadvantage but the clear advantage is better performance.

    Of course no, you can use it either by using hierarchy based editor or a graph based editor.
     
    Szaruga likes this.
  3. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    I'm curious how it will work.

    By the way, I wrote modest reviews in the asset store. Sorry for being late. :oops:
     
  4. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Sorry for misunderstanding, for now its still too earlier to explain how it work but certainly uNode will generate pure c# for work.

    Thanks for writing good review, it help me a lot.
     
    Szaruga likes this.
  5. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan
    In earlier versions of uNode, always when I created new graph or opened old ones - they opened centered at the same point - which I marked privately (upper left corner) with the "continue" node.
    2019-12-28_17-03-26.png
    I suspect that simply the uNode editor always opened the graph in such a way that it was centered in the same place.
    In the current version of uNode, this is no longer the case, graphs open centered in different places.
    Why is this so and can the old "settings" somehow be restored?
     
    Last edited: Dec 28, 2019
  6. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    In the current version of uNode, the graph position is saved so when you reopen graph the graph open with the last position you've left. I think this is useful but if you prefer old setting i'll made new option in preference to enable old setting.
     
  7. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan
    Thank you, I know that some prefer it as it is now, so it would be nice to be able to choose from the settings.

    By the way...
    Visual scripting tools - they are specific and are mainly used by beginners or "people who thinks with their eyes" (like me)
    I think that the Stackable Block system in uNode (which is a great thing) can scare beginners away - because it's too much like traditional coding.
    So maybe it would be worth giving some cool examples in the asset store, showing the operation of traditional nodes - for beginners to learn and folding blocks for more advanced ones.

    Personally, I am delighted with the possibilities of uNode - especially since I have a comparison with limited competition including Blueprints from the Unreal engine (which are praised everywhere, but really a burden for performance)
    But if I started my programming adventure myself now, I would probably choose Bolt instead of uNode.
    And only later, having knowledge and some skills, I would realize that uNode is better and fully professional. That's why I think your problem is to overcome this barrier for beginners

    P.S.
    Maybe the default names of action and validation blocks - should be "Action xx", "Validation xx" instead of "node xx"?
     
    Last edited: Dec 30, 2019
  8. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    I have not used "Condition" so far - now I have used it and I see there are some problems:
    It's ok here --->
    2019-12-30_13-10-53.png
    But here --->
    2019-12-30_13-13-15.png
    Actaully there is no need to use condition and validation nodes like this, because you can put all the logic in the validation node. But still there is an error in C# code generation here.
    And here --->
    2019-12-30_13-18-48.png
     
    Last edited: Dec 31, 2019
  9. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Do you mean giving example is by comparing block system with the traditional nodes?
    I am not sure how to do it, and i don't have a good example to compare both nodes.

    Yes i think its the main problem in uNode, do you know how to improve uNode to break barrier for beginners?
    i've tried by making uNode more easy in each update like improving UX, new features and so on but still i think its not enough, don't know what's wrong.

    will be improved ASAP.

    I think the bug is on the 'Condition' node, i will investigate and fix it ASAP.

    Thanks for report and the suggestions.
     
  10. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    I realize that the high entry threshold in uNode is due to its huge possibilities, other visual sriptings are more like toys - but also easier for beginners. Personally, I would be honest about it, that for some people it may be more difficult at the beginning but it is repaid with clean C# code and huge possibilities that the competition doesn't have for now.

    I have some suggestions:
    1. Stackable Block System should probably be presented as "advanced" and normal/traditional nodes should be as clear and legible as possible, so that beginners can see better that programming is not difficult at all
    - maybe more emphasis on icons informing about types etc.? so that you can clearly see the differences between types, etc.
    - maybe change the left panel (with variables, functions) to make it more clear and icon-based?
    - maybe more/better icon node headers?
    In competition - the nodes look easier to use (which is somewhat due to their limited possibilities)
    2. I also have a strange feeling that some people may be deterred by the "Vertical Graph" style maintained in dark gray / black colors - maybe it's worth making a light version?
    3. It would be great if there was a free version of uNode (eg limited to basic functions / nodes) + a set of several examples of completed mini games. It is probably a very efficient form of learning, being able to look inside a finished game, play it and analyze all the elements.
    4. If it is not possible to make a free/demo version of uNode (or it is too difficult) - then do some very simple projects and, for example, make them available in "cooked/playable" form for inspection, plus screenshots of graphs and descriptions how it's done.
    5. And of course any form of tutorials/guides etc. would be appreciated.

    P.S.
    a minor fix on the "place fit nodes" function? --->
    2019-12-31_15-04-09.png

    edit//
    Maybe it would be useful to be able to optionally set the background of the charts the old way (grid)? The lack of a grid can give the impression of chaos and hinder orientation.

    edit2//
    I tried to use uNode with Unity 2019.3.0f3.
    I like the new "decor" 2019.3 and I will gladly start working in this version. --->
    2020-01-01_07-16-07.png
    Unfortunately, the Vertical Graph does not work. --->
    2020-01-01_07-26-42.png
    uNode is the only advanced asset I use - so it determines which version of Unity I can use.
     
    Last edited: Jan 1, 2020
  11. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    1. -More icon will be available soon
    -I still working on it;)
    -Better icon header will be improved soon

    2. Currently i focusing on making the vertical theme more good first and some other stuff and then maybe starting to make new theme but for now improving other features is more worth.

    3. I think this is impossible for now, maybe in the future uNode 2.x

    4. i'll try to make it but not happen in short time.

    5. The main missing part in uNode i think is the tutorial and demo video, but i don't have time to make a videos for now.

    The improvement of place fit will be in version 1.9 or 2.0

    Sure setting background color and grid will be available soon.

    Support for 2019.3 will be available in next update;)
     
    Innocent-Dev likes this.
  12. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    Thinking about simple projects - I was thinking about something really simple, like:
    A few objects, clicking, something going on etc.

    Thanks :rolleyes:
     
    Last edited: Jan 1, 2020
    Mark_01 likes this.
  13. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Good idea, i'll try to make it.

    Thanks.
     
  14. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    I was able to launch Vertical Graph in Unity 2019.3
    2020-01-01_16-21-07a.png
    The left panel looks clearly better in my opinion. Nodes and blocks require correction (moving of texts and elements)
    In general - the look of the 2019.3 version - in my opinion it is more neat and transparent.
     
    Last edited: Jan 5, 2020
  15. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan
    1. When the function has the output type added - i can change its type, but nowhere can I see the possibility of changing the output type to "void"

    2. The code is generated well, but... --->
    2020-01-04_23-08-19.png
     
  16. Aiursrage2k

    Aiursrage2k

    Joined:
    Nov 1, 2009
    Posts:
    4,835
    Can this work at runtime?
     
  17. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Sorry for late answer.

    I've revamped the left panel to match with the vertical theme :
    Capture.PNG

    1 & 2. It will be fixed in next update.

    If you mean is the uNode Editor: this is only work inside Unity Editor.
     
    Innocent-Dev likes this.
  18. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan
    Chart center header - OK.
    But I don't like the left panel.
    As it is now (Unity 2019.3) it is better.
    Which is better in my opinion:
    2020-01-01_16-25-42a.png

    Also, I think functions should have their own icon.
    Eg void function something like this: {f} and another example like this: {f} {output type icon}
     
    BebopTune likes this.
  19. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    The left panel is still not finished yet, i recreate it with the new UIElements which you can also manually edit the layout (uxml) or style (uss) or maybe tweak it with UIElements Debugger like this:
    Capture4.PNG
    Capture3.PNG
    This also applies to the Vertical Graph, but its still limited.

    About the icon for function: you mean is custom icon for function or a improvement icon for function type?
     
  20. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    At the moment we have a card icon with a folded corner. Or a type icon if the function returns the type.
    I think there should be a characteristic icon for all functions, plus a second icon for the returned type - or some graphic combination of both icons. The letter "f" is very appealing to me - but you can think of / use something better.

    I think visual scripting should be done to some extent using icons / pictograms etc ... Wherever possible.
    This is the idea of this type of tool, and also a very good way to facilitate the work of people reaching for such tools.
     
  21. MasterSubby

    MasterSubby

    Joined:
    Sep 5, 2012
    Posts:
    252
    Like the look you are moving towards, hope to see much more of that. It's a big thing for visual people. Symbols catch the eyes faster, and are more memorable and pleasurable to look at.

    Seems like your starting to cover a lot of my issues, and I love you can type in expressions now. One of my biggest issues though is where you have decided to place things. Some options seem extremely unintuitive.

    For instance, I think putting the namespace under a seperate panel feels weird. Would make more sense to place it above the class itself on the left panel. Essentially think it comes down to, is it a concept within a C# script itself, it should belong more to the C# UI. If not, like excludes and color changes, should stay. I'd also love to see more categories and icons in the tool panel too. I've just had a hard time finding things, even after using awhile. Either that or it shaves off seconds getting it right. With repetitive tasks that's important.

    Also a suggestion, not sure if it exists in any form, but a way to actually setup an anonymous method actually typing into a node custom text code? If it's for compilation you wouldn't need to run the scripts, but if it is, there is Roslyn or something like CSScript if you've ever messed with it. Think something like this comes in handy for people who already can code, or are learning. Doing larger loops and complex math can get out of hand, but may help bridge both worlds more fluidly.

    But keep up the good work! It's improving much faster now, in a direction that is better for visual thinkers all around.
     
  22. wahid_rachmawan

    wahid_rachmawan

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

    Do you mean something like in the graph explorer?
    Capture.PNG

    Okay i'll add namespace in the top of classes, and some other improvements.

    Thanks for the suggestion.

    Are you mean is a node for creating anonymous method with linq expression using a text code?
    But for complex math you can use graph command to create complex math at once by hitting 'space' in the canvas.
     
    MasterSubby likes this.
  23. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    May be.
    Generally, the point is that it should be clearly indicated by the icon that it is a FUNCTION and what type it returns.

    uNode is better than other tools of this type in terms of capabilities and C # code generation but ... it is more difficult to use.
    E.g:
    (video attached)
    For someone advanced - like me, it is a simple and even pleasant operation, but you need to know when to right-click and when to left-click, as well as remember when searching - what exactly you are looking for. So it can be difficult and deterrent for beginners.
     

    Attached Files:

  24. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Okay, Item Selector will be improved soon.

    And for easier to use, i regularly improve the workflow in uNode which will be much more easier to use in the future version.
     
    Innocent-Dev and Szaruga like this.
  25. Innocent-Dev

    Innocent-Dev

    Joined:
    Apr 1, 2015
    Posts:
    23
    Hi Wahid, it’s very impressive how the Unode is getting better with every update, thank you very much for that, there are a couple of ideas how to improve the new node browser.
    1.in picture a.

    2.It will be difficult for beginners to navigate in such a large number of blocks, there should be an easy way to remove unnecessary namespaces from the browser, like in picture 2 Unode 1.png Unode 2.png .
    Thanks!
     

    Attached Files:

    wahid_rachmawan and Szaruga like this.
  26. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Thanks @alisia for the great idea.

    All of it will be available soon;).
     
    Innocent-Dev and Szaruga like this.
  27. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan
    Unity 2019.3 has been released.
    Will the next update uNode, support this version of Unity? :rolleyes:
     
  28. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Sure the next update will support U2019.3
     
    HeadClot88 and Szaruga like this.
  29. Innocent-Dev

    Innocent-Dev

    Joined:
    Apr 1, 2015
    Posts:
    23
    1. Hello. Tell me please . I want to change some colors in the editor I can’t understand how?
    2. Is it possible to somehow save the changes made through the UIElements Debugger unode icon.png ?
     
  30. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    1. What you want to change? if the color are changeable through the UIELements Debugger you can also change it use the correct uss (style) listed on the theme :
    Capture12.PNG
    Here is a example to change the node color:
    change_node_color.gif

    2. No you'll need to edit the .uss (style) using your favorite text editor.
     
    Szaruga and Innocent-Dev like this.
  31. Innocent-Dev

    Innocent-Dev

    Joined:
    Apr 1, 2015
    Posts:
    23
    I'm understood, thank you!
     
  32. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    uNode v1.8.5 has been released.

    Sorry for the longest update because I'm very busy at university lately.

    changelog v1.8.5:
    -Added support of displaying general node in node browser
    -Added ability to drag & drop node browser type, variable, property, and function to block system
    -Added ability to drag & drop graph explorer variable, property, and function to block system
    -Added ability to exlude namespace & type in node browser
    -Added ability to find node and pin type in node browser from a node on uNode editor
    -Improved Graph Panel for Vertical Graph
    -Improved Error checker
    -Removed dependencies of uNode on generating Event node with multiple target
    -Fixed bug can't change function type to 'void'
    -Fixed some UX bug on Unity 2019.3
    -Fixed some bugs

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

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan
    Thank You for new version. :cool::):cool:

    Three issues:
    1. Appears in the console after installing the new version --->
    2020-02-21_18-13-30.png

    2.
    2020-02-21_18-53-10.png
    Could you add a button to center the view on this initial one?
    This will allow after opening any script at any time, you could return to such a view (i.e. where we usually started to arrange nodes)

    3. In my humble opinion, the left panel looks worse now :(
    2020-02-21_19-30-31.png

    (Of course, I appreciate what you have improved and added - uNode is getting better.
    But personally, I just like the original bright theme much more. Maybe it would be possible to optionally choose the appearance of the panel from version 1.8.4?)
     
    Last edited: Feb 21, 2020
    BebopTune likes this.
  34. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    1. Will be fixed in next update
    2. To center the view to all node you can hit 'F' key
    3. That's still initial implementation using UI Elements, left panel will be more good in the future version as i keep improving it.
    Currently i not yet added an option to choose the appearance of the panel but you can customize it by modifying the stylesheet file named 'GraphPanel.uss' or the layout 'GraphPanel.uxml'
     
  35. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    Ok, I didn't know about the "F" key, but first you need to click on the canvas and then press the "F" key, so a better solution would be a button that does it with one click - e.g. somewhere here --->
    2020-02-24_18-44-40.png

    I understand that the appearance of the left panel is not final (probably the possibility of dragging variables and functions has temporarily disappeared)
    So with great hopes and patience we are waiting for the next versions of uNode. :)
     
  36. sledgeman

    sledgeman

    Joined:
    Jun 23, 2014
    Posts:
    389
    I am still waiting for v1.9 to get my desired features ;) ... and i appreciate it, you work on it even you have a hard time during your university job !
     
  37. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Sure it will be added soon.

    I think this is what you waiting for:
     
  38. sledgeman

    sledgeman

    Joined:
    Jun 23, 2014
    Posts:
    389
    Hey....oh really ? I tried it, but i think it didn´t work. Maybe i try it again. Dependencies are gone for everything or just for "multiple target" ? I try to upload the simple example.

    My way to do it, is while i am generating the C# script, i delete everything of "uNode". And when only C# script is left, it didn´t work, because telling you that it needs something.
     
  39. sledgeman

    sledgeman

    Joined:
    Jun 23, 2014
    Posts:
    389
    Here is the small example file, i used to test the scenario. Please let me know if everything is correct, or if i need to arrange it in a different way. Thank you.
     

    Attached Files:

  40. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    The generated c# will not have dependencies of uNode for everything except using state graph, and the state graph just need 2 simple script from the 'uNode/Runtime' folder so you can remove everything and just leave the 'Runtime' folder.

    Have you update uNode to latest version?
    i've test in my project and no dependencies of uNode, here is the output:
    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections.Generic;
    3.  
    4. public class PROGRAM : MonoBehaviour {
    5.     public List<GameObject> My_many_GameObjects = new List<GameObject>() { null, null };
    6.     private GameObject foreachItem;
    7.     public GameObject objectVariable;
    8.     public GameObject objectVariable1;
    9.     public GameObject objectVariable2;
    10.     public EventCoroutine coroutine1;
    11.  
    12.     void Awake() {
    13.         MaxyGames.Runtime.RuntimeUtility.AddEvent(objectVariable, "OnMouseOver", () => {
    14.             coroutine1.Run();
    15.         });
    16.         MaxyGames.Runtime.RuntimeUtility.AddEvent(objectVariable1, "OnMouseOver", () => {
    17.             coroutine1.Run();
    18.         });
    19.         MaxyGames.Runtime.RuntimeUtility.AddEvent(objectVariable2, "OnMouseOver", () => {
    20.             coroutine1.Run();
    21.         });
    22.         coroutine1 = new EventCoroutine(this, _ExecuteCoroutineEvent("ForeachLoop_myList"));
    23.     }
    24.  
    25.     bool _ExecuteEvent(string name) {
    26.         switch(name) {
    27.             case "Node_0": {
    28.                 foreachItem.transform.Rotate(new Vector3(0.46f, 0.91f, 3.36f), 2F, Space.Self);
    29.             }
    30.             break;
    31.         }
    32.         return true;
    33.     }
    34.  
    35.     System.Collections.IEnumerable _ExecuteCoroutineEvent(string name) {
    36.         switch(name) {
    37.             case "ForeachLoop_myList": {
    38.                 foreach(GameObject foreach_item in My_many_GameObjects){
    39.                     foreachItem = foreach_item;
    40.                     _ExecuteEvent("Node_0");
    41.                 }
    42.             }
    43.             break;
    44.         }
    45.         yield break;
    46.     }
    47. }
    48.  
     
  41. sledgeman

    sledgeman

    Joined:
    Jun 23, 2014
    Posts:
    389
    Ah ok...i will try it in the next days. Thanks for looking into !
     
  42. EmeralLotus

    EmeralLotus

    Joined:
    Aug 10, 2012
    Posts:
    1,462
    Does anyone know how to turn on the Vertical graph mode? I already installed the vertical graph package but cannot find how to switch on that mode.
     
  43. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    EmeralLotus likes this.
  44. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan
    Adding attributes to variables doesn't work.

    Another problem with Dictionary --->
    2020-03-19_21-27-40.png

    2020-03-19_21-29-05.png
     
    Last edited: Mar 19, 2020
  45. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
  46. INGTONY

    INGTONY

    Joined:
    Oct 13, 2014
    Posts:
    24
    Does Unode can be handled in an assetbundle or an adressable asset? thankyou
     
  47. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Yes, you can include graph logic in an assetbundle or a prefab with component generated using uNode or scriptable object script that's generated using uNode
     
  48. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    uNode v1.8.6 has been released.

    changelog v1.8.6:
    -Added ability to import graph from json
    -Added ability to export graph to json
    -Improved Editor
    -Improved Type Builder
    -Fixed variable node return type won't change after changing the variable type
    -Fixed proxy dot won't show in the output port and input port from the block node
    -Fixed can't add new attribute
    -Fixed error on generating KeyValuePair type

    Download here : http://maxygames.com/download/
     
    Innocent-Dev and Szaruga like this.
  49. Deleted User

    Deleted User

    Guest

    hi there, something wrong with anonymous function node
    i can't change types

    oh , plz support delegate ;)
     
  50. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Hi QtGhost,

    Its a bug and i have fix it.

    Replace 'NodeAnonymousView.cs' with the file attached to fix that.

    For the delegate do you mean for be able to create new delegate type or using the existing delegate type?

    And thanks for report it.
     

    Attached Files: