DOTS Visual Scripting 4th experimental drop

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
(Unity 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!

15 Likes

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 :slight_smile:

2 Likes

“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?

1 Like

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?)

1 Like

thanks for the report, I’m investigating it… not sure why it’s failing

1 Like

We are looking at this issue and will send a fix ASAP.

1 Like

Yes.

2 Likes

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.

1 Like

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.

1 Like

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
5 Likes

Hello,

Just a heads up, it seems the On Event node is broken in this version, seems to be a copy/paste error

// GraphElementSearcherDatabaseExtensions.cs : Line 94 in the OnEvent block should be
data => data.CreateNode<OnEventNodeModel>(name, n => n.EventTypeHandle = eventType.GenerateTypeHandle(db.Stencil))

Other than that, this already feels very solid, good job!

1 Like

(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?
3 Likes

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?

1 Like

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
2 Likes

Just want to say how much I appreciate the effort to make DOTs as usable in a practical sense as possible. Great work guys!

2 Likes


I got a error message of “missing VSArrayExtension” while trying to instantiate an entity with random position.

1 Like

Sorry, this node is a left over from a previous iteration. We’ll make a proper random node, probably in the next drop.

1 Like

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?

3 Likes

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.

3 Likes

Yes thanks!
This is the menu I’m referring to

1 Like