FlowCanvas - Visual Scripting Similar to Unreal Blueprints

Hello everyone,
I haven’t posted it, but the integration with @Tryz (ootii’s) Event System Dispatcher and FlowCanvas is available for download from the FlowCanvas website as promised on an earlier post :slight_smile:
Cheers!

1 Like

You rock!

Wait until you see the new integration I’m working on with the Motion Controller and Node Canvas! :wink:

1 Like

Awesome!
Looking forward to see what you come up with Tim. Motion Controller is fantastic :slight_smile:
Thanks man!

1 Like

Hello Nuv! Happy new year!

What is a fast way to add a number node?

Like this one?

Hey,
Happy new year to you as well! :slight_smile:
This is simply a float variable node. To create one you can right click in the canvas and select “GraphVariable(float)”.
2926000--216254--FloatVariable.png

Let me know if that works for you.
Cheers!

1 Like

how can us ‘ReflectedFieldNodeWrapper’,I need get Field of class

Hey,
While the script exists in the package, it was not made available to be added in the end, because using fields would result in a performance impact if use frequently/per-frame. If you still want to use fields though I can make the required changes needed to enable the ReflectedFieldNodeWrapper to be added in the UI and send the modified version to you. If so, please send me an email with your order ID (support@paradoxnotion.com) and I will reply with the modified package as soon as possible. I will probably enable this in the next version too as well.
Thanks!

I saw this :Unity Asset Store - The Best Assets for Game Making
Maybe flowcanvas and nodecanvas can get some ideas from it !

Hi, I really love Flow Script and visual node programming, anyway I hope it can still improve.
I have a execution order related issue in my project, I try to explain clearly what happens:
I have two gameobject, each of theme has a flowscript controller on it (they have the same functionality).
Both flowscript send an event to the other player when the On Awake event is fired. At Runtime, just one of the two events is actually fired.
I suppose that the problem is due to the fact that one of the two objects is created after the other.
If a introduce manually a delay between the On Awake event and the send event node everything works as expected.
I’m going crazy to try a smart solution that avoids these kind of syncro problems. Can you help me? Thanks in advance

Hey,
Thanks. I am really glad you like FlowCanvas! There is of course always room for improvements. :slight_smile:
Regarding the issue you are facing, you are correct in saying that this has to do with the order in which the objects are initialized. To resolve this issue, I have created (and attached for you here) a new node named “Start”, which is similar to the Awake node, but is called 1 frame later. As such, all event nodes of graphs will have a chance to initialize first.
Let me know if this node works for you.
Thanks!

2950325–218724–StartEvent.unitypackage (787 Bytes)

1 Like

@nuverian_1 thanks for your support. It works perfectly :wink:

Great! Thanks for letting me know and glad to be of help :slight_smile:

Hi nuverian,

started with Unity 3D and Flowcanvas/NodeCanvas after a longer break.
In conjucntion with TextMeshPro and FlowCanvas, I noticed that I cannot set several font-style at the same time, like Bold+Italic, I can only chose one style. Have a look at the screenshot how TMP handles it differently than Unity Text.
2955359--219233--TextMeshpro_01.JPG

And here is a FC screenshot:


How would I do this in FC? … And in NC?

Another question, for a RPG/Simulation style of game, would you recommend creating classes for the different Characters (attributes and so on) or could I stay completely within FC and NC?

Thanks!

I’m not author of FC/NC, but I try answer to first question,
Its because FontStyles enum in TMP not marked as [Flags]. While it use custom inspector - all works fine, but standart inspectors can’t handle this in “normal way”. But you can use this node, I write it very fast, if dont work correctly, let me know.

using FlowCanvas;
using FlowCanvas;
using ParadoxNotion.Design;
using TMPro;
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif
namespace Core.Tools
{
    [Name("TMP Font Style Chooser")]
    [Category("Variables")]
    [Description("Returns font style for Text Mesh Pro.")]
    [ContextDefinedOutputs(new [] {typeof(FontStyles)})]
    public class TmpFontStyleNode : FlowNode
    {
        [SerializeField]
        private int style;

        protected override void RegisterPorts()
        {
            base.RegisterPorts();
            AddValueOutput("Value", () => (FontStyles)style);
        }

#if UNITY_EDITOR
        protected override void OnNodeInspectorGUI()
        {
            EditorGUI.BeginChangeCheck();
            EditorGUILayout.BeginHorizontal();
            int styleValue = (int)style;
            int v1 = GUILayout.Toggle((styleValue & 1) == 1, new GUIContent { text = "B", tooltip = "Bold"}, GUI.skin.button) ? 1 : 0;
            int v2 = GUILayout.Toggle((styleValue & 2) == 2, new GUIContent { text = "I", tooltip = "Italics" }, GUI.skin.button) ? 2 : 0;
            int v3 = GUILayout.Toggle((styleValue & 4) == 4, new GUIContent { text = "U", tooltip = "Underline" }, GUI.skin.button) ? 4 : 0;
            int v7 = GUILayout.Toggle((styleValue & 64) == 64, new GUIContent { text = "S", tooltip = "Strikethrough" }, GUI.skin.button) ? 64 : 0;
            int v4 = GUILayout.Toggle((styleValue & 8) == 8, new GUIContent { text = "ab", tooltip = "Lowercase" }, GUI.skin.button) ? 8 : 0;
            int v5 = GUILayout.Toggle((styleValue & 16) == 16, new GUIContent { text = "AB", tooltip = "Uppercase" }, GUI.skin.button) ? 16 : 0;
            int v6 = GUILayout.Toggle((styleValue & 32) == 32, new GUIContent { text = "SC", tooltip = "Smallcaps" }, GUI.skin.button) ? 32 : 0;
            EditorGUILayout.EndHorizontal();
            if (EditorGUI.EndChangeCheck())
            {
                style = v1 | v2 | v3 | v4 | v5 | v6 | v7;
            }
        }
#endif
    }
}

It looks like this:
2955609--219258--upload_2017-2-11_13-20-47.png

While in FlowNode OnNodeGUI is sealed we cant override Node GUI and can use only inspector panel.
(For NC its must ctreated in seam way, I dont use it, and dont try implement nodes for it)

Second question in my opinion dont have “right” answer. It all very much depends on the architecture of your game, not game style.

3 Likes

Wow! Sorry for replying so late, but wow! Wonderful and it works perfectly. Thank you very very much fot this!
Btw, do you know why [ContextDefinedOutputs(new [ ] {typeof(FontStyles)})] ContextDefinedOutputs is red underlined? It says unknow symbol, but it still works???

Ok, I must admit that I didn’t understand everything, as I’m no pure coder :slight_smile:

Hmm, I will try the classes first method and see howit works.

Thanks again for your help!

What IDE you use? And can you share screen shot with error?

I use the Scriptinspector 3 as IDE, a very nice tool btw.
Here is the screenshot.
2956948--219391--TMP_FC.JPG

Maybe you must send bug report to author of “Scriptinspector 3” because in Visual Studio and MonoDevelope all works fine.

Hi,
me again :slight_smile: Any ideas why FC is always loosing the references? No matter what I select as Reference, saving it, after I quit and restart Unity they are gone.

And another question regarding the first screenshot with the Toggle on click, is this the correct way to do it?

Ok, but it still works fine, it’s only red underlined, maybe a warning that is not crucial?