Thanks a lot for your positive feedback! I am really glad you like FlowCanvas!
There is no dedicated issue tracker right now, but please feel free to use the forums, that would be really fine 🙂
You are very correct about the bug you’ve posted. I will take a look at fixing this properly.
Another solution instead of using IUpdatable, would be to use a coroutine and basically yield for one frame. (nodes can use coroutines).
This is what I’ve done in the new node “Start” that will come in the next version (shown bellow).
(Of course, I still need to fix the OnEnable event order of execution.)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
namespaceFlowCanvas.Nodes{
[Name("On Start")]
[Category("Events/Graph")]
[Description("Called once the first time the Graph is enabled.nThis is called 1 frame after all Awake events are called.")]
publicclassStartEvent:EventNode{
privateFlowOutput start;
privateboolcalled=false;
publicoverride voidOnGraphStarted(){
if(!called){
called=true;
StartCoroutine(DelayCall());
}
}
IEnumerator DelayCall(){
yield returnnull;
start.Call(newFlow(1));
}
protectedoverride voidRegisterPorts(){
start=AddFlowOutput("Once");
}
}
}
If you find any other bugs, or have any suggestions, please feel free to post them! 🙂
Thanks again for the bug report!