Search Unity

DOTS Visual Scripting 4th experimental drop

Discussion in 'Data Oriented Technology Stack' started by ans_unity, Sep 23, 2019.

  1. ans_unity

    ans_unity

    Unity Technologies

    Joined:
    Oct 12, 2017
    Posts:
    73
    Hi everyone,

    Drop 4 of Visual Scripting for DOTS is ready for you to try!
    https://drive.google.com/a/unity3d.com/file/d/1_Q0HfjvFt-ozprVrRrhPKkDa1yk45fYr/view?usp=sharing

    You'll need to create a project using at least 2019.3.0b1
    (https://unity3d.com/unity/beta/2019.3.0b1)


    Features
    • Codegen for coroutines (Wait node)
    • Establish High-Level Nodes documentation and priority
    • Remove Groups from VS (will be replaced by placemats)
    • Floating Graphview tool windows (you can move and dock the blackboard and the minimap)
    • Duplicate node (now both create and duplicate are available)

    Fixes
    • VSB-276 Dragging a criteria pills from function on canvas will make the graph unusable
    • VSB-265 Drag and drop pills from canvas to port is not always linking on node port
    • VSB-240 Conditional node breaks ui when added between two stacks
    • VSB-195 Searcher Constant Nodes Preview is broken
    • VSB-40 Drag and drop pills from stack header or blackboard to port is not always linking on node port

    Known issues
    • Nested coroutine won’t work for this version
    As with the previous experimental drops, this is work in progress that we share to engage in an open discussion with our community. Expect issues and weird workflows as we work our way up to a more final product.

    Most notably, we are still far from the final user experience, the complexity you see here is not representative of what we want to deliver. We have not yet created high level nodes to reduce the number of operations or finalized our UI to make interactions as intuitive they can be.

    So kindly take note of the usual disclaimers:
    • Not for production use.
    • Early picture of Visual Scripting, not be representative of the final version.
    • You will need to be tech savvy to use this version. Not yet ready for everyone.
    • Things will change.
    As always, we are looking for your comments.

    Enjoy!
     
  2. wpare

    wpare

    Joined:
    May 13, 2019
    Posts:
    1
    Dear Mr. @ans_unity

    When I try to launch the project using 2019.3.0b1, I get the below error message.

    Could you provide a list of steps to follow for the cleanest resolution of this problem?

    Thank you :)

    upload_2019-9-23_16-20-33.png
     
    createtheimaginable likes this.
  3. AndrewKaninchen

    AndrewKaninchen

    Joined:
    Oct 30, 2016
    Posts:
    86
    "Floating Graphview tool windows (you can move and dock the blackboard and the minimap)"

    Does this mean there are now separate editor windows for each of those?
     
  4. createtheimaginable

    createtheimaginable

    Joined:
    Jan 30, 2019
    Posts:
    9
    I am getting the same error in 2019.3.0b4.

    When i click continue the Unity Editor loads but I do not get any of the Visual Scripting menus...

    When I go to the Package Manager the list of packages does not load.

    I also get an a lot of errors...

    Packages/com.unity.visualscripting.entities/Runtime/EventSystem.cs(13,89): error CS0246: The type or namespace name 'EntityManager' could not be found (are you missing a using directive or an assembly reference?)

    Packages/com.unity.graphtools.foundation/Editor/VisualScripting/Editor/Elements/Node.cs(6,19): error CS0234: The type or namespace name 'Searcher' does not exist in the namespace 'UnityEditor' (are you missing an assembly reference?)
     
    Last edited: Sep 24, 2019
  5. thierry_unity

    thierry_unity

    Unity Technologies

    Joined:
    Jun 10, 2015
    Posts:
    181
    thanks for the report, I'm investigating it... not sure why it's failing
     
  6. ans_unity

    ans_unity

    Unity Technologies

    Joined:
    Oct 12, 2017
    Posts:
    73
    We are looking at this issue and will send a fix ASAP.
     
  7. jocelyn_legault

    jocelyn_legault

    Unity Technologies

    Joined:
    Jan 16, 2019
    Posts:
    2
    Yes.
     
    AndrewKaninchen likes this.
  8. ans_unity

    ans_unity

    Unity Technologies

    Joined:
    Oct 12, 2017
    Posts:
    73
    We made a fix (some dependencies were not accessible outside our VPN). You can re-download the file now and it will work.
    Sorry for the inconvenience.
     
  9. Creepgin

    Creepgin

    Joined:
    Dec 14, 2010
    Posts:
    297
    Hi, are the following currently supported?

    1) EntityCommandBuffer operations
    2) ComponentDataFromEntity/BufferFromEntity
    3) I see you can mark a comp as Subtractive, what about "Any"?
    4) Creation of custom nodes from code (not Macros)
    5) Custom/Multiple Worlds (e.g. how does live editing work when the system is running in multiple worlds?)

    Also another thing... when I try to double click on EcsStencil, it just opens my text editor (with the yaml). EcsStencil is for changing the system dependencies right? I'm using 2019.3.0b4.

    Thanks.
     
    Last edited: Sep 28, 2019
  10. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    37
    Hello, thank you for testing it.

    1) Yes, automatically at this point. we're going for reasonnable defaults, we might expose more settings in the future
    2) Same
    3) Not supported yet, but good point
    4) You can either expose a static method using the [Node] attribute or create a custom node like we do (model, translation method and optionally UI
    5) Not handled yet
     
  11. ChristopherUljaszUbisoft

    ChristopherUljaszUbisoft

    Joined:
    Aug 21, 2019
    Posts:
    1
    Hello,

    Just a heads up, it seems the On Event node is broken in this version, seems to be a copy/paste error
    Code (CSharp):
    1. // GraphElementSearcherDatabaseExtensions.cs : Line 94 in the OnEvent block should be
    2. data => data.CreateNode<OnEventNodeModel>(name, n => n.EventTypeHandle = eventType.GenerateTypeHandle(db.Stencil))
    Other than that, this already feels very solid, good job!
     
  12. PixelLifetime

    PixelLifetime

    Joined:
    Mar 30, 2017
    Posts:
    52
    (Since previous thread was closed.)
    1. Will it be possible to access all of Unity API in Visual Scripting? The particular thing I am interested in is mesh data. I want to procedurally generate mesh.
    2. Also, are we able to write our custom nodes and components in C# without vs? [it's important because sometimes developers want to be able to write code in C# but make high level custom nodes out of it], and how will the process look like?
    3. Is there a possibility that we could write custom nodes with data for things like [example] Dialogue graph that supports branching on conditions, executes different actions... etc. Or should we aim to write our own graph solutions based on UIElements and GraphView to support this kind of behaviour?
     
    JoNax97 and Kender like this.
  13. VI6-D-DARK-KING

    VI6-D-DARK-KING

    Joined:
    Apr 1, 2016
    Posts:
    4
    Ok, 2 things.

    First, when I Dock the Visual Script Window I can't see the nodes, they are still there since when I Box Select It gives me the option to change the color of the nodes, but I can't see them.

    Second, Currently there is no Save System, Not a surprise being Just a prototype The Question is Will there Be an Intergraded Save System at Launch and How Extensive will it be?
     
  14. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    37
    Good catch, it's already fixed in our codebase. Thank you for the kind words !

    1. Yes, it's just a matter of exposing them. It's a list (EcsSearcherDatabaseProvider.k_PredefinedSearcherTypes) that should eventually be data driven.
    2. There's 3 ways to make nodes: sub graphs (functions and macros), straight c# (see 1.) and deriving NodeModel or
    HighLevelNodeModel (HighLevelNodeModel provides an inspector in the node for code gen options). Have a look at
    LogNodeModel.cs
    3. Yes. Two options: either write custom nodes for the ECS stencil or write a completely custom stencil and its matching translator. the graphtools foundation package is meant to be a framework for every node-based tool (serialization, ui, extensibility, transformation of the edit time graph to whatever runtime format you want : in our case, code, but it could be an asset too). No ETA on the framework being production ready, but we try to use it as user would to build VS ECS
     
    PixelLifetime likes this.
  15. nsxdavid

    nsxdavid

    Joined:
    Apr 6, 2009
    Posts:
    341
    Just want to say how much I appreciate the effort to make DOTs as usable in a practical sense as possible. Great work guys!
     
    theor-unity likes this.
  16. wilson_p

    wilson_p

    Joined:
    Nov 4, 2018
    Posts:
    3
    VSBugReport.jpg
    I got a error message of "missing VSArrayExtension" while trying to instantiate an entity with random position.
     
  17. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    37
    Sorry, this node is a left over from a previous iteration. We'll make a proper random node, probably in the next drop.
     
  18. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,140
    I would like to be able to change the background color from black to a grey color, could you pass this background color control to the unity color settings, so I can choose my own color?
     
    Krajca, Ofx360 and Ryiah like this.
  19. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    37
    That's something we should offer for all graph based tools (shader graph, vfx). I'll suggest it to the team handling the graph ui framework.
     
    Lars-Steenhoff and alisia like this.
  20. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,140
    Yes thanks!
    This is the menu I'm referring to

    Screenshot 2019-10-11 at 14.28.05.png
     
    theor-unity likes this.
  21. vamky

    vamky

    Joined:
    Aug 9, 2014
    Posts:
    69
    Please allow us to use visual scripting to create custom editor, scriptable, timeline custom clip and tracks!
     
    myanko likes this.
  22. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    37
    This is out of scope for VS 1.0, but definitely something I'd like to tackle later.
     
    vamky likes this.
  23. vamky

    vamky

    Joined:
    Aug 9, 2014
    Posts:
    69
    Yeah, I completely understand. There's definitely a lot works involved, I really hope unity's visual scripting solution can be deeply integrated into different development processes just like unreal blueprint (and better!).
     
    theor-unity and Lars-Steenhoff like this.
  24. wilson_p

    wilson_p

    Joined:
    Nov 4, 2018
    Posts:
    3
    arraybug.jpg
    How can I create a new array in this VSTool? I click on the "Array" checkbox and get an error message. And there seems nothing changed in Code line 20.
     
    createtheimaginable likes this.
  25. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    37
    short answer: you don't. We need to cleanup this part of the ui.

    The dots way to do that would be to author a bufferElementData (using the component editor if you want to), then add it to the query.
     
  26. HopefullyAnonymous102

    HopefullyAnonymous102

    Joined:
    Apr 13, 2019
    Posts:
    1
    Is Unity VS going to be able to code an entire game when released or at some point?
     
  27. elbows

    elbows

    Joined:
    Nov 28, 2009
    Posts:
    2,361
    I'd say that will come down to three things:

    Which parts of Unity do not quickly get a DOTS/ECS equivalent.
    Whether the Unity VS tools plug some of these gaps by deciding to go beyond the purely ECS world in some areas.
    What sort of game.

    Possibly the safest assumption is that as this is a long journey involving multiple immature systems that are still evolving, there will be a long period where a hybrid approach makes the most sense for many projects. One where ECS is used for certain core aspects of the game that require the performance benefits it offers, and this is what the visual scripting tools will be used for. Over time ECS will expand into more areas of Unity, and various tools including the visual scripting will take account of this. And help bridge other gaps, depending on what needs and pain points emerge.