Search Unity

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

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

  1. Mark_01

    Mark_01

    Joined:
    Mar 31, 2016
    Posts:
    634
    I am sure you will do well in the long run. New developers some times takes a while to
    get hugely noticed. But I am sure it will come. Myself I have not bought yet, but i do want too,
    just need to get by the wife first .. haha...

    Nottorus, well .. I never bought it was just way to expensive and the Dev had no tutorials and
    not very much communication with his user base ( such as it is/was ) IMHO .... I think it left
    a bad taste in people and once burned .... I know none of this is your fault... and that is what
    sucks the most.

    However I do believe in your asset and I believe you will do very well in the coming future... :)
     
  2. JimmyGee

    JimmyGee

    Joined:
    Mar 13, 2013
    Posts:
    6
    I purchased Unode and Nottorus , I am beginning to believe i prefer Unode. It just seams to be a little easier to catch on to. I would like to see how to use the new features as you add to the program. Thank you very much for a well written program.
     
  3. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Ah yes an asset from new dev will takes a while to get popular especially for me twenty years old and no marketing knowledge but hope that time will comes soon.

    Hmm for the user base i plan to use discord, and plan to open it when version 1.7 comes.

    Thanks.

    I just thinking why i not made a new documentation when new feature comes.
    Mostly user don't know for what new feature for and how to use it, when the newer version out with new features i will add some pictures about the feature when i can.
    The documentation for new feature will out soon.

    Thanks.
     
    Mark_01 and AthrunVLokiz like this.
  4. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    uNode v1.6.5 has been released on the Asset store.
     
    Mark_01 likes this.
  5. Mark_01

    Mark_01

    Joined:
    Mar 31, 2016
    Posts:
    634
    Wow no disrespect, your only 20 ? :) You have time lots of it... so now I am very sure you will see the fruits of your labor here. Now I feel old as the hills haha ..( I turn 60 next year )

    I think once you get noticed here and Unity takes notice, they can be of help, with placement etc ....

    You have a very exciting profitable future, I feel.
     
  6. JimmyGee

    JimmyGee

    Joined:
    Mar 13, 2013
    Posts:
    6
    Wish I was 20 again, or maybe Not as the Country and Western Singer Willie Nelson says, as I am 73. Best of luck in life young man.
     
    Mark_01 likes this.
  7. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Yes and thanks.

    Thanks.
     
    Mark_01 likes this.
  8. sledgeman

    sledgeman

    Joined:
    Jun 23, 2014
    Posts:
    389
    Hey,

    i was doing some C# conversions. I noticed one thing. For example...if i do a "OnTrigger" event with 1x Target-GameObject, C# code works. But if i have a "OnTrigger"-Node with 2-3x TargetObjects, the C# compiling exports the file, but it doesnt work well. So it seems the Target-Objects get lost, or so. Only if you have one TargetObject inside the Trigger Node, it works.If you stay with uNode runtime, you don´t got any probs with that. Only by trying compiling your nodes into C#.

    Can anyone replicate this issue ?
     
  9. wahid_rachmawan

    wahid_rachmawan

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

    Basically OnTrigger only work only on GameObject itself, the uNodeRuntime using some utility to handle multiple object so OnTrigger can be called from another GameObject. I only found two solution to fix it the first is simple but it will be required uNode to be included when you build it (only when using event node with multiple target) and the another one is by creating utility to handle it like in state machine, but for now i still not have any plan to make it, i have many tasks that must be completed first.
     
  10. sledgeman

    sledgeman

    Joined:
    Jun 23, 2014
    Posts:
    389
    Okay, got it.
    So it would work, if i include the "uNode.dll" ? Or? I mean its allready inside the unity-assets folder. But the C# maybe doesn´t find it ?
    You second solution is more complicated, as you mention. So maybe it could be put on the schedule-priority-list.

    My other solution would be, to handle multiple targest by <addComponent> to the desired object. But i don´t know if this method is performance friendly.
     
  11. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    No its not exist at all, this solution is simple to make which can be available soon when i start make it but i think the second solution is the best by not having dependencies with uNode.
    The second solution is not very complicated i just need to make a simple script which have "OnTrigger" event on it and attach (add component) it to each target object. the script itself is just callback to the original script.

    Yea your solution is exactly same like me but instead of add components the original script i add a simple script callback.
    The performance is very fast no other complicated stuff that make the performance slow. I have added it to priority list, soon after few new features are implemented this will be available.
     
    Mark_01 likes this.
  12. sledgeman

    sledgeman

    Joined:
    Jun 23, 2014
    Posts:
    389
    Ah ok.

    Interesting ! I allready used this "addComponent" command in some codes of mine (handwritten), but for the "simple script callback" i never heard. Sounds more simple. I will investigate into it. Thx for the tip !
     
  13. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    uNode v1.6.6 has been submitted for review!

    changelog v1.6.6:
    -Added ability to craete variable by dragging UnityObject.
    -Added support to parse 'yield break' syntax.
    -Added support to parse LeftShiftExpression.
    -Added support to parse RightShiftExpression.
    -Added NodeYieldBreak.cs used to generate yield break.
    -Added Region node box used to organize the node.
    -Added commonly unused namespace to exclude it in item search by default (can be managed from preference).
    -Added SmoothLookAt.cs action used to smooth look at object.
    -Added SmoothMove.cs action used to smooth move an object.
    -Added TransfromRotate.cs action used to rotate an object.
    -Added TransfromTranslate.cs action used to move an object.
    -Improved CSharpGenerator
    -Improved Editor
    -Improved ItemSelector
    -Improved ErrorChecker
    -Fixed bug parsing null values.
    -Fixed bug parsing commentaries.
    -Fixed bug parsing increment/decrement syntax.
    -Fixed bug parsing source generic method.
    -Fixed bug parsing type with full namespace.
    -Fixed bug RandomSelector won't call flow in random order.
    -Fixed bug could't invoke constructor with parameter.
    -Fixed bug on splitting node.
    -Fixed error on converting value between delegate type.
    -Fixed error on c# type, field, property or function name was changed (only for editor).
    -Fixed some editor bug.

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

    I have made improvements to the documentation where there is now have more detailed documentation.
    Check it out: http://maxygames.com/docs/
    more documentation will comes soon.

    The new Region Box is out:
    Region Box.gif

    New Space Shooter examples is out:



    Download Space Shooter examples.
     
    Mark_01 and AthrunVLokiz like this.
  14. sledgeman

    sledgeman

    Joined:
    Jun 23, 2014
    Posts:
    389
    Great update ! Region Box is a "nice to have" handy feature... and of course, the more examples we got, the better we understand working with uNode :)
     
    Mark_01 likes this.
  15. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Yes, for now i have many examples but its still not cover most of the uNode features.
    Most example are build with CSharpParser which mean only flow (low level) stuff are covered.
    The Action & Condition, State Machine, Behavior Tree, and a runtime features doesn't have an examples.
    Soon i will convert some examples to high level stuff (State Machine, Behavior Tree, or Action & Condition).

    Have fun with uNode;).
     
    Mark_01 likes this.
  16. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    uNode v1.6.6 has been released on the Asset store.
     
  17. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    uNode v1.6.7 has been submitted for review!

    changelog v1.6.7:
    -Added preference to hide node comment.
    -Added FlowToggle.cs
    -Improved CSharpGenerator
    -Improved Editor
    -Improved ErrorChecker
    -Improved uNodePreference
    -Improved core script for further development
    -Moved node namespace from MaxyGames.uNode to MaxyGames.uNode.Nodes
    -Fixed some editor bug.

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

    Now i working to make a Theme for better UI, my plan this will available in version v1.7.
    And to improve the Action System which will have coroutine support so i can make more cool action like play animation and wait till finish and the more cool action for non programmer;).

    I will delay to make new documentation because new version may have different UI which may need to recreating the old documentation.
     
    Szaruga, Rixtter and Mark_01 like this.
  18. sledgeman

    sledgeman

    Joined:
    Jun 23, 2014
    Posts:
    389
    Great news ! I keep allways an eye on that thread here :). Really impressive "frequent" progress. Just can say: glad i bought it:cool:
     
    Mark_01 likes this.
  19. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    Hmm...
    It starts to look interesting...
    uNode this is the only competition for Nottorus... but...
    Question: Will it be the same as Nottorus in time? o_O

    P.S.
    Generating the pure C # code by uNode and Nottorus is the world championship :cool: :)
     
  20. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    What is exactly the same as Nottorus, the features?
     
  21. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    uNode v1.7 has been submitted for review!

    changelog v1.7:
    -Now coroutine is supported in action system.
    -Added AnimationPlay action
    -Added AnimatorPlayAnimation action
    -Added GameObjectFindClosestWithTag action
    -Added NavMeshAgentFlee action
    -Added NavMeshAgentFollow action
    -Added NavMeshAgentPatrol action
    -Added NavMeshAgentSeek action
    -Added NavMeshAgentWander action
    -Added YieldWaitForSeconds action
    -Added YieldWaitForEndOfFrame action
    -Added YieldWaitForFixedUpdate action
    -Added New Dark and Light graph editor themes.
    -Improved Action System
    -Improved CSharpGenerator
    -Improved Editor
    -Improved ItemSelector
    -Improved ErrorChecker


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

    The new update comes with an improved action system that support coroutine, this mean action can now run more than one frame which is good for action that must finish the task first before the next action executed ex: moving object until reach some distance.
    Also the new Coroutine Action node has the ability to run coroutine action at once (parallel) and the action will wait the running action until its finished. I want to make the action system to give developer more focused on what they make which is easy to understand and faster. First i included some useful action for AI and some cool action, in the future i want to make big libraries for action.

    And i have new graph themes dark and light which you can change whether it is unity personal or pro.
    Capture3.PNG Capture4.PNG Capture.PNG Capture2.PNG
    This is earlier version of these theme, i will keep improving it for more better.
    The native theme is still exist so i don't need to update the documentation.

    One more thing, the Discord server for uNode is now open.
    Visit the link to join : https://discord.gg/8ufevvN
     
    Last edited: Oct 23, 2018
    Mark_01 and AthrunVLokiz like this.
  22. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan
    I'm sorry, I do not understand your question.

    I used many visual scripting, also Blueprints in Unreal Engine. But only uNode and Nottorus create 100% clean scripts of normal code. In my opinion, this is the absolute basis for visual scripting to be a professional tool. And only these are worth attention.

    edit/
    aaaaa o_O the same... I mean that Nottorus ceased to be supported and developed :(
     
  23. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    I will support uNode as long as i can.
     
    Mark_01 likes this.
  24. sledgeman

    sledgeman

    Joined:
    Jun 23, 2014
    Posts:
    389
    Great UI improvements !!! :cool:
     
    Mark_01 likes this.
  25. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    uNode v1.7 has been released on the Asset store.
     
    Mark_01 likes this.
  26. cjxw87

    cjxw87

    Joined:
    Jul 6, 2015
    Posts:
    1
    Can unode run on mobile devices , do I need to do extra actions like" build for aot" in other visual scripting tool
     
  27. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    @cjxw87
    Yes uNode support mobile and other platform that unity support, in uNode you don't need action like" build for aot" with the power of c# generation.
     
  28. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan
    Is there a chance for uNode to have reroutings such as these:
    2018-11-02_19-26-53.png

    2018-11-02_20-14-56.png

    2018-11-02_20-20-51.png
     
    Last edited: Nov 2, 2018
  29. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    @Szaruga
    Currently uNode doesn't have that feature but I have plans to make it in the future.
     
    Mark_01 and Szaruga like this.
  30. Rixtter

    Rixtter

    Joined:
    Mar 31, 2014
    Posts:
    244
    Hey there, think I found a bug when converting code to nodes with the Switch statement.
    Load of my code has two dimensional arrays that won't convert (will this work in the future?) so I tried loading the following. It generates the Switch node with all of the switches set to "START".

    Code (CSharp):
    1.  
    2. public enum GameState {
    3.    START,
    4.    PLAYERCHOICE,
    5.    ENEMYCHOICE,
    6.    LOSE,
    7.    WIN
    8.   }
    9.  
    10.   private GameState currentState;
    11.   private GameState lastState;
    12.  
    13.   void Start () {
    14.    currentState = GameState.START;
    15.   }
    16.  
    17.   void Update () {
    18.    switch (currentState) {
    19.     case (GameState.START) :
    20.      if (currentState != lastState) {
    21.    
    22.      }
    23.      lastState = currentState;
    24.      break;
    25.     case (GameState.PLAYERCHOICE) :
    26.      if (currentState != lastState) {
    27.    
    28.      }
    29.      lastState = currentState;
    30.      break;
    31.     case (GameState.ENEMYCHOICE) :
    32.      if (currentState != lastState) {
    33.    
    34.      }
    35.      lastState = currentState;
    36.      break;
    37.     case (GameState.LOSE) :
    38.      if (currentState != lastState) {
    39.    
    40.      }
    41.      lastState = currentState;
    42.      break;
    43.     case (GameState.WIN) :
    44.      if (currentState != lastState) {
    45.    
    46.      }
    47.      lastState = currentState;
    48.      break;
    49.    }
    50.   }
    Unity Version:
    2018.2.14f1
     

    Attached Files:

  31. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    The 2D array is rectangular array or jagged array?
    For now uNode does't support rectangular array it will be supported in the future.

    I have fixed parsing switch in the upcoming update, and it will be released in a few days.

    Thanks for reporting it.
     
    Last edited: Nov 13, 2018
    Rixtter likes this.
  32. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    uNode v1.7.1 has been submitted for review!

    changelog v1.7.1:
    -Added support to generate code for EventNode with multiple target objects.
    -Improved CSharpGenerator
    -Improved Editor
    -Improved ErrorChecker
    -Fixed parsing enum values
    -Fixed bugs parsing SwitchStatement
    -Fixed ErrorChecker bugs on NodeSetValue
    -Fixed coroutine action can be added on non coroutine action.
    -Fixed some editor bug.

    Download here : http://maxygames.com/download/
     
    Mark_01 likes this.
  33. sledgeman

    sledgeman

    Joined:
    Jun 23, 2014
    Posts:
    389
    Finaly "-Added support to generate code for EventNode with multiple target objects." !!! :)
     
  34. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    I bought! :):cool::rolleyes::p;)

    2018-11-26_16-25-37.png

    Now, tests await me, which will show if uNode will replaces for me Nottorus. o_O
     
    AthrunVLokiz and Mark_01 like this.
  35. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Thank you, hope you will enjoy it;).
     
    Mark_01 likes this.
  36. sledgeman

    sledgeman

    Joined:
    Jun 23, 2014
    Posts:
    389
    of course....sure....he will :cool: (damn....i want to buy a second copy)
     
  37. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan

    I'm starting my adventure with uNode.

    At the moment, I am transferring my project to uNode, generally I am very pleased, but I have several problems.
    Where can I write about problems, suggestions and questions? here or in private conversation?
     
  38. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    You can write here, private conversation or our discord channel : https://discord.gg/8ufevvN
    But I prefer someone to write here ;).

    Have fun with uNode.
     
  39. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan

    First problem.
    I have a parsing error - it appears when I want to parse this:
    2018-12-03_09-12-51.png
    2018-12-03_09-11-40.png
     
  40. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
  41. Szaruga

    Szaruga

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

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Thanks again for report it.

    This bug will be fixed in next update, alternative you can replace ConditionalNode with this one:
    Code (CSharp):
    1. namespace MaxyGames.uNode.Nodes {
    2.     [NodeMenu("Operator", "Conditional {?:}")]
    3.     public class ConditionalNode : ValueNode {
    4.         [Hide, FieldConnection(false), Filter(typeof(bool))]
    5.         public MemberData condition;
    6.         [Hide, FieldConnection()]
    7.         public MemberData onTrue = MemberData.none;
    8.         [Hide, FieldConnection(), ObjectType("onTrue")]
    9.         public MemberData onFalse = MemberData.none;
    10.  
    11.         public override System.Type ReturnType() {
    12.             if(onTrue.isAssigned || onFalse.isAssigned) {
    13.                 try {
    14.                     if(onTrue.isAssigned) {
    15.                         return onTrue.type;
    16.                     } else {
    17.                         return onFalse.type;
    18.                     }
    19.                 }
    20.                 catch { }
    21.             }
    22.             return typeof(object);
    23.         }
    24.  
    25.         protected override object Value() {
    26.             if(condition.isAssigned) {
    27.                 return condition.GetValue<bool>() ? onTrue.Get() : onFalse.Get();
    28.             }
    29.             throw new System.Exception();
    30.         }
    31.  
    32.         public override string GenerateValueCode() {
    33.             if(condition.isAssigned) {
    34.                 return "(" + CSharpGenerator.ParseValue(condition) + " ? " + CSharpGenerator.ParseValue(onTrue) + " : " + CSharpGenerator.ParseValue(onFalse) + ")";
    35.             }
    36.             throw new System.Exception();
    37.         }
    38.  
    39.         public override string GetNodeName() {
    40.             return "?:";
    41.         }
    42.  
    43.         public override void CheckError() {
    44.             base.CheckError();
    45.             uNodeUtils.CheckError(condition, this, "condition");
    46.             uNodeUtils.CheckError(onTrue, this, "onTrue");
    47.             uNodeUtils.CheckError(onFalse, this, "onFalse");
    48.         }
    49.     }
    50. }
    I just add "(" and ")" on generating script but it should fix it.
     
  43. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan
    Ok, thanks, it works :)
    (97.5% of errors, I "fix" doing it differently (bypassing)). It does not change the fact that they should be repaired ;)

    Next --->
    Because everything seems to be ok, probably wrong error reporting:
    2018-12-03_19-19-46.png

    Next --->
    Annoying, continuous unnecessary reporting that appears whenever the workspace is a "break" node:
    2018-12-03_20-32-39.png

    Next --->
    Error when using IF in property setter:
    2018-12-03_22-52-10.png
     
    Last edited: Dec 3, 2018
  44. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Its bug on ErrorCheck, will be fixed soon.
    Edit: fixed in next update.

    Sorry i don't understand can you explain more?

    I'll look into it, the next update will be fixed.
    Edit: fixed in next update.

    Very thanks for report it, you helped me build uNode more and more stable;).
     
    Last edited: Dec 4, 2018
    Mark_01 likes this.
  45. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan
    If there is a "break" node somewhere on the canvas, this warning repeats over and over again:
    2018-12-04_05-30-22.png

    Also after parsing, there are problems with nodes "Divine", changes the output to the object type:
    2018-12-04_05-39-53.png

    After parsing the code containing the properties, the value parameter can not be accessed in Setter:
    2018-12-04_05-46-32.png

    .........
    Thank you that I can help. :) I worked with various visual scriptings, also with Blueprints in Unreal engine and personally I think that uNode is the best :cool: And I hope that you will improve it and will be even better. I also have suggestions for the interface, themes, etc ... but maybe later, because the errors are more important.
     
    Last edited: Dec 4, 2018
    Mark_01 likes this.
  46. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    I'll investigate it soon.
    Edit: The warning related to null texture has been fixed, will be available in next update.

    Can you send me the script for i can test?

    Great:).
    If uNode is the best for you, could you take some time to review it on the Unity Asset Store?

    Thanks.
     
  47. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    You mean writing reviews? Because I've already rated it. Yes, I planned to write a few sentences in the coming days ...

    I will try to send in soon...

    I hope that the lack of the property parameter is caused by an error from post number 289
     
  48. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Don't know if you already rated it, but thank you if you want to provide a review;).

    The bug maybe because of parsing error.
     
  49. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan

    Parsing error --->
    I have code:
    Code (CSharp):
    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4.  
    5. public class a_test2 : MonoBehaviour {
    6.     public static a_test2 Var0;
    7.  
    8.     void Start () {
    9.         Var0 = this;
    10.     }
    11. }
    2018-12-05_16-55-53.png

    Also this is what happens when I try to use "this" when editing nodes instead of parsing:
    2018-12-05_17-15-21.png
    (Despite the error the code is OK, although the "as a_test2" part is unneeded.)
     
    Last edited: Dec 5, 2018
    Mark_01 likes this.
  50. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Fixed in next update.
    Also all the bugs that you reported have been fixed.

    Thank you for report it.
     
    Last edited: Dec 6, 2018
    Mark_01 likes this.