Gavalakis

Forum Replies Created

Viewing 15 posts - 16 through 30 (of 923 total)
  • Author
    Posts
  • in reply to: Cannot reference interface #3580
    Gavalakis
    Keymaster

    Hello and thank you! I am glad you like NodeCanvas and FlowCanvas!

    There is a small bug with Unity Object Fields GUI and interfaces, where for it to work, you have to drag and drop the MonoBehaviour (that implements the inteface) itself rather than drag and drop the gameobject. (dragging and dropping the gameobject does not work for some reason).

    Here is a workflow solution to achieve that:
    – Select the “child” gameobject (flowScript) and open its graph editor.
    – “Lock” the graph editor (with the lock button on the top right of the graph editor toolbar).
    – Now select the “top” gameobject and drag and drop the actor MonoBehaviour itself (not the gameobject) on the blackboard within the graph editor (which is still locked to view the “child” gameobject graph).

    Please let me know if this works for you.
    I know this is somewhat cumbersome. I will try to find a solution around the Unity Object Field and that limitation with interfaces.
    Thank you!

    Join us on Discord: https://discord.gg/97q2Rjh

    in reply to: is support edit and run in runtime? #3579
    Gavalakis
    Keymaster

    Hello,

    If you mean to have a GUI graph editor in the final build game, then this is not possible since the graph editor is made for and using the UnityEditor namespace, which is only available within the Unity Editor.

    Thank you.

    Join us on Discord: https://discord.gg/97q2Rjh

    in reply to: Signals from/to C# script #3573
    Gavalakis
    Keymaster

    Hello,
    The two of them work differently. Here are example code with explanation comments for you.

    SIGNAL:

    CUSTOM EVENT:

    If you need any clarification please let me know. 🙂

    Join us on Discord: https://discord.gg/97q2Rjh

    in reply to: How do we write coroutines? #3570
    Gavalakis
    Keymaster

    Hello again,

    Thank you for your input. I believe this has more to do with the implementation of the ForEach node (and similarily for the For Loop node).

    I could implement a ForEach node to act the way you describe in your first post, however there is one problem: To continue with the next element in the iteration, we have to know when the current iteration has ended and there is no apparent way to know when a “flow” has ended since a node can have multiple output ports. Therefore for this to work, it will require implementing an extra Node (like a “Return” or “Continue” node), which will we will have to use at so that the ForEach node, knows when to proceed to the next element. In your example this “Return” / “Continue” node will have to be used right after the “Log Text” node for example.

    Let me know what you think.

    Thank you.

    Join us on Discord: https://discord.gg/97q2Rjh

    in reply to: Error when building for WebGL #3569
    Gavalakis
    Keymaster

    Hello again and sorry for the late reply.

    You indeed have to generate the AOT related classes and link.xml files ( please note that this is documented here by the way 🙂 )

    I am glad that your project is working with the generated files (?). Thank you and sorry for the late replies once again.

    Join us on Discord: https://discord.gg/97q2Rjh

    in reply to: FSM – Manual Check #3568
    Gavalakis
    Keymaster

    Hello,

    “Manual Check” be done only through code by having a reference of the state, which for example you can get with the API of the FSM class and was initially added only for being used through code. HOWEVER, I would advise against it since it is something that is definitely going to be removed in future update since it is rather a leftover feature that sometimes confuse people.

    With that said, “Check Event” condition task, even every frame, in itself has pretty much zero performance impact since its update code is simply this:

    Regarding your 2nd post about the transition not happening, I just did a test and it’s working correctly. Can you please confirm that the Check Event and Send Event are using the same name (its case sensitive) and that the target GraphOwner of both are the same GraphOwner?

    Let me know. Thank you.

    Join us on Discord: https://discord.gg/97q2Rjh

    in reply to: FlowScript as a ConditionTask in Behaviour Tree #3567
    Gavalakis
    Keymaster

    Hello,

    Indeed, sub-flowscript are treated like Actions rather than like Conditions in the Behaviour Tree, and unfortunately, at least right now, this means that they can’t be used with the Dynamic option of nodes in the Behaviour Tree because since the Dynamic option is mean to work specifically with Conditions only. With that said, I will look again at this and see how I can make it happen 🙂

    Thank you.

    Join us on Discord: https://discord.gg/97q2Rjh

    in reply to: Breakpoints #3566
    Gavalakis
    Keymaster

    Hello again,

    There is an option in the Preferences (Toolbar > Prefs) to set whether or not breakpoints pause the Unity Editor (by default they do since I believe it makes a bit more sense).

    If the Unity Editor is paused, then you also have to unpause the Unity Editor (I could make this automatically when you press play in the FlowCanvas editor). But if you don’t like the game to be paused, you can disable the “Breakpoints Pause Editor” in the Preferences.

    Let me know if that works for you. Thanks.

    Join us on Discord: https://discord.gg/97q2Rjh

    in reply to: Accessing GlobalBlackboard Variables from C# script #3565
    Gavalakis
    Keymaster

    You are welcome 🙂

    Join us on Discord: https://discord.gg/97q2Rjh

    in reply to: Integration with NC FSM #3564
    Gavalakis
    Keymaster

    Hello again Tomas!

    Indeed, each FSM State can be a sub-FlowScript, instead of a normal Action State. Because by design each graph is serialized and stored separately as an asset, it is true that for each FSM State that you’d like to be modeled with a sub-FlowScript, a FlowScript asset graph has to be created.

    Regarding your questions:

    1) Do you mean attach a FlowScript asset on an existing Action State so that it runs like an action, instead of having to create a sub-FlowScript State node and attaching the FlowScript there? ( it’s not possible right now, but is that what you mean? )

    2) The sub-FlowScript State node has 2 parameters in its inspector called “Success Event” and “Failure Event”, which are triggered repsective if the sub-FlowScript ended in success or failure (via the “Finish” node).  Here is the related Documentation.

    Regarding returning a value from the sub-FlowScript back to the FSM, this can be achieved by mapping the variables of the FSM to/from the variables of the sub-FlowScript. Please see the documentation regarding variables mapping here.

     

    Please let me know if that is what you meant (maybe I misunderstood your question).

    Thank you.

    Join us on Discord: https://discord.gg/97q2Rjh

    in reply to: Null Reference When Executing in Android #3546
    Gavalakis
    Keymaster

    Hello,

    Have you built the AOTClasses and xml files as described HERE please?

    Let me know. Thank you.

    Join us on Discord: https://discord.gg/97q2Rjh

    in reply to: Accessing GlobalBlackboard Variables from C# script #3545
    Gavalakis
    Keymaster

    Hey,

    You can get a Global Blackboard’s Variable like this for example:

    In the ‘GlobalBlackboard.Find’ you have to pass the identifier name of the Global Blackboard (as set in its inspector). Then you can use the ‘GetVariableValue` method to get the value of a variable. T has to be the type of the variable and you of course have to pass the name of the variable as the example above 🙂

    Let me know if that is what you were after. Thanks.

    Join us on Discord: https://discord.gg/97q2Rjh

    in reply to: Extension Method for Component spams the search result #3539
    Gavalakis
    Keymaster

    Hello and sorry for the late reply.

    Indeed this show up because there are multiple entries that would be listed for each component, but you are right that it is somewhat redundant. I will see to it 🙂

    Thanks.

    Join us on Discord: https://discord.gg/97q2Rjh

    in reply to: Cache question #3535
    Gavalakis
    Keymaster

    Hello,

    This is the right thing to do if you want to cache a value that is performance intensive to get. So yes that is totally fine 🙂
    Caching this way vs a graph variable: cache node should be better performance wise, but we are talking about minimal differences if any, therefore I would suggest to just use the workflow that you prefer better 🙂

    Join us on Discord: https://discord.gg/97q2Rjh

    in reply to: display problem #3534
    Gavalakis
    Keymaster

    Hello,

    Do you have any errors logged in the console? If yes, can you please post the console logs here?

    Let me know. Thanks.

    Join us on Discord: https://discord.gg/97q2Rjh

Viewing 15 posts - 16 through 30 (of 923 total)