Upgrading from 1.6 to 2.1?

NodeCanvas Forums Support Upgrading from 1.6 to 2.1?

  • This topic has 4 replies, 2 voices, and was last updated 10 years ago by zxc.
Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #9749
    zxc

    Awesome work on the new version. We’ve done some development using 1.5 – 1.6 and would love to upgrade our project. Is there any guide on how to do it properly? Naive hacking through the API changes seems like a massive task, but actually was quite easy.

    BUT: the Behaviour Tree prefabs we were using totally exploded. No trace of the old trees (which would be nice to have, really) and also scenes spit with errors referencing __ALLNODES__ gameobject (which doesn’t even exist in the scene! seems to be an artifact from the older version).

    It was just my first try and I ended up reverting all the changes. Will try tomorrow again. Is there any migration guide or can you point me to anyone who successfuly migrated from 1.6 to 2.X? Or maybe there’s no backwards compatibility at all?

    #9753
    zxc

    The exact error I get is:

    `GameObject (named ‘__ALLNODES__’) references runtime script in scene file. Fixing!

    After the upgrade it appears even on completely empty scenes, referencing objects that don’t even exist.
    1)I restart Unity on an empty scene
    2)I click a prefab in Project window that doesn’t even contain anything Node Canvas related
    3)From now on I get those crazy errors even on empty scenes on play (until restart)

    #9752
    Gavalakis
    Keymaster

    Hey there,

    Thanks. I am glad you like NC2 🙂
    Well, as for upgrading existing tasks and API changes, there is a small txt guide included in the package.
    But, very unfortunately, upgrading grahps is not possible 🙁
    The way the graphs were saved/serialized previously and how they are done now, is totaly different.

    Previously, nodes were MonoBehaviours. Those MonoBehaviours were stored in a gameobject named “__ALLNODES__”. For convenience that gameobject was hidden since there was no reason to fiddle with it.
    Currently, nodes are serialized and deserialized from JSON and simply derive system.object. So, as you can tell the difference is rather core, and the reason of not being upgradable.

    I could create and provide you a script to get rid of the “__ALLNODES__” error, which basicaly would be a script that finds and deletes those gameobjects, but unfortunately Graphs can’t really be updated.

    I am very sorry for this inconvenience. It was a hard choice really, but I opted to do it for a better future software.

    I would suggest to continue using 1.x and use 2.x in a future project maybe 🙂
    And if you have any issues with 1.x I will still support it for some time ahead.

    Cheers!

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

    #9751
    zxc

    Okay, I hacked through the API changes and reimplemented all my 1.6 tricks in 2.1. It’s much more sensible now.

    __ALLNODES__ problem happens only as long as I have any old 1.6 assets in the scene and library. Simply removing them and manually upgrading works fine. Clicking in all the graphs again is a pain, but it’s bearable.

    Now the biggest issue for us is 2.1 not working on Xbox One which was fine in 1.6 (it’s the same issue AOT compilation problem that causes problems on iOS, we presume). I would love to get all updates on progress of that!

    #9750
    Gavalakis
    Keymaster

    Hey, I have replied to your other post regarding xbox. Let me know.

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

Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.