Search Unity

  1. Unity 2019.1 is now released.
    Dismiss Notice

DOTS Visual Scripting first experimental drop

Discussion in 'Data Oriented Technology Stack' started by ans_unity, May 13, 2019.

Thread Status:
Not open for further replies.
  1. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    19
    This is an idea for DOTS in general (you don't want just your visual scripts to be included in there), maybe repost it in a separate thread ?
     
  2. thierry_unity

    thierry_unity

    Unity Technologies

    Joined:
    Jun 10, 2015
    Posts:
    172
    thanks, yes I understand that removing the packages fixed the issue but it's abnormal. I wonder if it it an issue with the AssetDB. I loaded the project here and it clearly state that it had to rebuild everything since the asset database wasn't found. Maybe deleting the library would have helped in that situation. I'll keep an eye opened since it's not supposed to happen.

    unfortunately it is a known issue, whe haven't really worked on the light skin yet.

    Mind to share that corrupted graph? I've been having similar issues in the past and I would love to compare.
    thanks!
     
  3. Onigiri

    Onigiri

    Joined:
    Aug 10, 2014
    Posts:
    71
    In accordance with existing node editors VS editor can be named as Script Graph or Logic Graph.
     
    eobet likes this.
  4. Lurking-Ninja

    Lurking-Ninja

    Joined:
    Jan 20, 2015
    Posts:
    3,600
    I would vote for the Visual DOTS. Simple and says everything you need to know.
     
    theor-unity likes this.
  5. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    19
    That would restrict us to dots graphs. there's plenty of useful graph types we could make which aren't dots.
     
    myanko and Lars-Steenhoff like this.
  6. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    4,573
    Why V DOTS / VDOTS is more restrictive, than DOTS VS / DOTSVS?
     
  7. dadude123

    dadude123

    Joined:
    Feb 26, 2014
    Posts:
    783
    Those other new tools would just get their own name then.
    They'd need their own name anyway.
    In fact that's what you guys are doing already anyway, see here:

    - Visual Effects Graph
    - Shader Graph

    so this thing could be named using the same schema, maybe the the "Visual DOTS (Graph)" :)
     
  8. thelebaron

    thelebaron

    Joined:
    Jun 2, 2013
    Posts:
    245
    I guess I'm not seeing the big picture here, what other graph types are will this support besides dots?
     
  9. pvloon

    pvloon

    Joined:
    Oct 5, 2011
    Posts:
    586
    "Shader Graph" generates shaders

    So if this graph generates code why not just "Code Graph"


    (Also, while VS is not my cup of tea this is super exciting, great work UT!)
     
    theor-unity likes this.
  10. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    4,573
    DOTS is not just generic code. Is specific paradigm of programming, to gain additional performance.

    I think here is good valid point, worth taking into consideration.
    Other than, I would rather Call DOTS Graph (DOTSG). Tats it.

    I think Unity suffer quite for lack of consistency, between range of features. Specially visible on legacy features.
    Here is a chance, not to fall further away.
     
  11. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,183
    Er, but lets get back on track and feedback on the software if we can, thanks all :D
     
  12. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    19
    All I'll say at this point: NOT mono behaviour. The focus is dots at the moment, but stay tuned.
     
  13. hakankaraduman

    hakankaraduman

    Joined:
    Aug 27, 2012
    Posts:
    331
    That's a great improvement to have. I wanted to experiment with it but couldn't even move a GameObject :)
    I can do this on C# code easily, I know it's very early phase but do you have some kind of documentation updated as you build more for this Visual Scripting?
     

    Attached Files:

  14. SmartMediaNL

    SmartMediaNL

    Joined:
    Sep 29, 2016
    Posts:
    52
    It feels to me that ECS / Dots / Job system is so different that the default Mono behavior interface system. That integrating it is trying to bring two very different worlds together and try to make both worlds work while both will suffer from each others.
    I would rather have seen it developed in a complete new engine and dropping mono behavior for that engine. Resulting in a complete system and interface for developing in one or the other. It really seems the developers are fighting to get the new approach into a system that is not designed for it.
     
    BenzzzX and hippocoder like this.
  15. PendingFox

    PendingFox

    Joined:
    Jan 15, 2017
    Posts:
    35
    ^
    As previously stated by the devs themselves(multiple times) Unity is moving towards DOTS only environment, slowly but surely ditching the MONO. They are not fighting they are transitioning it as it takes a lotta time and effort as you could probably imagine.

    And there is no need for rewriting an engine from scratch as DOTS is an architectural layer on top of C/C++ core.

    Devs please correct me if I'm wrong.
     
    Last edited: May 16, 2019
    hippocoder likes this.
  16. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    4,573
    The transition toward ECS / DOTS is already in progress, at least since Unity 5.
    Is indeed slow and careful process, but we see evolution in real time. :)
     
  17. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    19
    you need to connect the first port of the translate node and plug the entity variable in the containing stack.

    we're working on a way to make that automatic - most of the time, in a stack like that, everything you do involves that entity.
     
  18. PhilStA

    PhilStA

    Joined:
    Feb 15, 2017
    Posts:
    3
    Is there any difference between my two "Set Rotation To" here?


    What's the difference between putting the SetRotationTo inside the OnUpdateEntities, and putting it in another group?
     
  19. jeanedouard_unity

    jeanedouard_unity

    Unity Technologies

    Joined:
    May 2, 2019
    Posts:
    3
    This is not another group, you're still in the OnUpdateEntities. If you click on the Code Viewer button you'll see that the rotation is applied twice. Linking two Stacks like that can be useful for reading, just like when you insert a blank line between two lines of code.
     
  20. PhilStA

    PhilStA

    Joined:
    Feb 15, 2017
    Posts:
    3
    ok, got it. I think I would personally prefer if there was only one way of doing things (linking to a new node every time instead of making node stacks) for less confusion, but that's just my two cents

    And I have follow-up questions:
    1. When adding new nodes, it's often not clear which nodes I have the right to add in the context that I am in (for example, trying to add a Translate node in that OnUpdateEntities gives me an error because there is no Translation component in my query). In the future, will there be something that tells us which nodes would be valid when adding them through the menu? Like, maybe all the ones that wouldn't be valid right now would be grayed out but still addable. Or maybe Valid and Invalid nodes would be in two separate root groups in the AddNode menu? I think this would be very helpful to help teach the system to those who are new to it
    2. Also, I'm trying to find a context in which I can place a LoadScene node without errors and can't find anything. Any suggestions?
     
    Last edited: May 16, 2019
    rizu likes this.
  21. jeanedouard_unity

    jeanedouard_unity

    Unity Technologies

    Joined:
    May 2, 2019
    Posts:
    3
    Yes, it will. As mentioned in the original post, the product is not final and the user experience will be improved a lot.

    Unfortunately there is an issue here so I'll recommend to not use this node for now.
     
    PhilStA likes this.
  22. PhilStA

    PhilStA

    Joined:
    Feb 15, 2017
    Posts:
    3
    Thanks! And yes, I'm fully aware that this is all WIP. I'm just poking around to give feedback and try to understand what's the long-term plan

    Some more questions:
    1. I'm trying to add Criterias in my query definition like this, but it's not making any difference in my code gen. How should these criterias be used?
    2. Do the Criterias under the OnUpdateEntities node provide functionality that we couldn't just do with an If node and a Return node?
     
  23. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    19
    Right now, no, it just reduces clutter. In the future, we might be able to generate more optimized code
     
    PhilSA likes this.
  24. PhilSA

    PhilSA

    Joined:
    Jul 11, 2013
    Posts:
    1,056
    * switching to my personal account, but I'm still @PhilStA *

    More questions (some of these are things that I suppose aren't possible right now, but it's food for thought):
    1. Is it possible right now to declare variables for the system?
    2. How would I go about doing the following:
      1. (not in visual script) I create a MyGameData ScriptableObject and create an Addressable asset from it in my project
      2. (in visual script from this point on....)
      3. Declare a "MyGameData" field in my system
      4. In OnCreateManager, load this MyGameData asset with addressables and save it in the field I declared
      5. In OnUpdate, always "return;" as long as this asset hasn't been loaded
      6. Have a Job that gets fed some of the data contained in this MyGameData. Like myGameData.FireballDamage for instance, so that if I spawn fireball entities, I know how much damage I must give them
    3. If point #2 as a whole is just too complicated and I should just handle all the asset loading in a custom script that I write myself.... how can I do this with VS:
      1. Get the system that holds that data asset and cache it in a class variable in OnCreateManager
      2. Pass some data from MyGameData to my jobs
    4. I'm trying to create an Entity from a job and add a component to it, but I'm not sure how to specify which Entity we must add the component on

    In short, I think it would be good to have access to all these events:
    • OnCreateSystem
    • OnDestroySystem
    • OnUpdateSystem
    • OnUpdateEntities (what we have now)
    ... and possibly have explicit control on when the "OnUpdateEntities" are scheduled during the update loop, so we can put conditions, initializations, returns, etc.... before them

    __________________________________

    EDIT: sorry, just saw on first page that declaring variables was not possible
     
    Last edited: May 16, 2019
  25. jeanedouard_unity

    jeanedouard_unity

    Unity Technologies

    Joined:
    May 2, 2019
    Posts:
    3
    You should drag'n'drop the TestCriteria on the criteria section of the OnUpdateEntities stack (See the attached screenshot). Also there is no drag'n'drop visual feedback so I understand it's hard to know that this item is draggable. But you can also create it directly in OnUpdateEntities.

    By adding the criteria in the blackboard you make it reusable.

     

    Attached Files:

  26. ans_unity

    ans_unity

    Unity Technologies

    Joined:
    Oct 12, 2017
    Posts:
    70
    I've just added a note to the original post:
    If you find any major bug, you can report them in our Github repo. Please keep in mind that this is a very early version so our focus is not so much on the minor stuff yet.
    Thanks!
     
    Last edited: May 17, 2019
    Arkade, hippocoder, dzamani and 2 others like this.
  27. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    19
    we're looking for a good workflow to allow this kind of usecases, there's definitely a need for manual, explicit scheduling.

    about variables: WIP (per graph, per entity, ...)
     
  28. Flurgle

    Flurgle

    Joined:
    May 16, 2016
    Posts:
    368
    theor-unity likes this.
  29. starikcetin

    starikcetin

    Joined:
    Dec 7, 2017
    Posts:
    218
    You guys are amazing! Keep up the good work!

    But please release the ECS already I am actually in deep anticipation.
     
    Last edited: May 18, 2019
    theor-unity and thierry_unity like this.
  30. MisterMartinez

    MisterMartinez

    Joined:
    Apr 23, 2017
    Posts:
    2
    I have only been using it for a few days but the big things that I noticed were:
    • Navigating the graph seems to be the most common action, yet it requires a modifier key(alt). The default left mouse button action is Box Selection which isn't nearly as common of an action. I feel like these two should be flipped.
    • the Add Node list filter seems pretty inconsistent. ie. I can only choose the 'Set Property' node if I'm adding a node to the stack. As someone who likes to build in a playground area off to the side of the graph and then connect it to the stack when it's 'done', this bothers me.
    • Conversely, pulling off a variable node doesn't give me a curated list based on the context. I'd like the ability to chose whether or not the current list is being filtered.
    Aside from that, there's few minor features that are probably already in the pipe:
    • No modifier key shortcut to cut connections.
    • When trying to remove a connection, you have to select 'delete' instead of 'disconnect' which is a bit unintuitive.
    • Can't have multiple connections coming out of a single variable.
    Mostly, though, my troubles stem from DOTS itself. Creating a pretty simple game of 'click to spawn cube' requires an Authoring Component, Data Component, and a fairly labor-intensive System Graph to connect it all together. Part of the problem is that all 3 of these things are modified in different areas (code, unity scene, graph editor) so you're constantly switching back and forth to get the graph to work.

    Perhaps the biggest time-saver would be the ability to generate ComponentData objects inside the graph since I'll probably be figuring out what data I'll need while working on the system.

    **Forgot to mention that It throws errors when attempting to generate a solution file. I'm not sure if there's another way to get VS to recognize Unity code but it's really annoying.
     
    Last edited: May 21, 2019
  31. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,028
    Good points, Alt as a modifier for navigation is consistent with navigating in unity ( scene view ) I think that is fine, still it would be nice if that could be a user preference setting in the shortcut manager.
     
  32. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    703
    Any rough estimate on when the linux version will come out for testing? Super rough, as in would it be weeks or more like months?
     
    createtheimaginable likes this.
  33. Asad-Gamer

    Asad-Gamer

    Joined:
    May 31, 2017
    Posts:
    3
    DOTS VS is for DOTS based Visual Scripting but what about Monobehavior if Unity is not going to build a MonoBehavior then Unity should provide/buy a existing VS Solution such as Bolt or uScript and Behavior Designer.
     
    Stardog likes this.
  34. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,183
    Unity's said they have no plan to do one for monobehaviour. It is the same for their shader graph being restricted to SRP, Unity is solving the unsolved not the already-solved-many-times problems.

    And I totally get that. Best I can suggest is you wait for a sale, and pick up one of the very many visual scripting solutions for regular C# monobehaviour on asset store.
     
  35. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    19
    Are you talking about the linux editor build ? vscripting should work with it out of the box.
     
  36. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    19
    Thank you for the valuable feedback. So:

    We kept the scene view modifier as said by someone else. Ideally, all graph based tools (shader graph, VFX, VS) will have the same shortcuts, so we're reticent to diverge too much.


    You can create an empty stack, then connect it when it's done. The consistency is WIP, this whole feature went through changes recently. Expect it to improve in the next versions.

    So, there's two types of filtering: convenience and necessity. if you drop an edge from a port on the graph, showing stacked node doesn't make sense.
    • Try Alt+Shift+Drag, it's the edge knife.
    • noted
    • you can, but by default we auto-itemize variables: there's an option in the settings menu (see screenshot)
    We're working on that - this is more of a UX problem than a codegen one, so we're trying to find the right balance, but this is our main focus right now. Stay tuned.
     

    Attached Files:

  37. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    703
    This was what I was referring to.

     
  38. poussinfrais

    poussinfrais

    Unity Technologies

    Joined:
    Nov 9, 2015
    Posts:
    1
    If you have a mouse wheel (or middle mouse button) -- that is, if you're not using a trackpad or a special tracking device -- you should be able to navigate by simply pressing Mouse wheel + drag. Same behaviour as Alt + Left-click + drag. Let us know if that doesn't work.
     
  39. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    19
    Oh, right. To be honest we (the vscripting team) are not testing the linux build at this point as the project is still moving around a lot, but it will definitely be supported once we're out of preview. meanwhile, we're not using any OS specific feature, so I expect it to work, but no promises.
     
    createtheimaginable likes this.
  40. MisterMartinez

    MisterMartinez

    Joined:
    Apr 23, 2017
    Posts:
    2
    Thanks for replying to my feedback guys, most of the notes I've taken while testing aren't major issues that I feel strongly about since I know the final version won't be done for a while. With that said, here's my most recent notes:

    • I've noticed a few methods have a different signature, ie. Entities.Instantiate() doesn't return an Entity.
    • If you can use inheritance in graphs, I couldn't figure out how.
    • Game would crash when using enums as 'criteria' for a query.
      NullReferenceException: Object reference not set to an instance of an object

      UnityEditor.VisualScripting.GraphViewModel.NodeModel.get_Stencil () (at Packages/com.unity.visualscripting/Editor/VisualScripting/Model/GraphViewModel/NodeModel.cs:35)

      UnityEditor.VisualScripting.Model.EnumConstantNodeModel.get_EnumValue () (at Packages/com.unity.visualscripting/Editor/VisualScripting/Model/Common/Constants/EnumConstantNodeModel.cs:20)

      UnityEditor.VisualScripting.Editor.ConstantEditor.VisualElementExtensions.CreateEditorForNodeModel (UnityEngine.UIElements.VisualElement element, UnityEditor.VisualScripting.Model.IConstantNodeModel model, System.Action`1[T] onValueChanged) (at Packages/com.unity.visualscripting/Editor/VisualScripting/Editor/Elements/Extensions/ConstantEditorExtensions.cs:26)

      Packages.VisualScripting.Editor.Elements.CriterionRow.SetupConstantEditor (UnityEditor.VisualScripting.Model.IVariableModel criterionValue) (at Packages/com.unity.visualscripting.entities/Editor/Packages/VisualScripting/Editor/Elements/CriterionRow.cs:150)

      Packages.VisualScripting.Editor.Elements.CriterionRow..ctor (UnityEditor.VisualScripting.GraphViewModel.IGraphElementModel graphElementModel, UnityEditor.VisualScripting.Model.Stencils.CriteriaModel criteriaModel, UnityEditor.VisualScripting.Model.Stencils.Criterion criterion, UnityEditor.VisualScripting.Model.Stencils.Stencil stencil, UnityEditor.VisualScripting.Editor.Store store, Packages.VisualScripting.Editor.Elements.ExpandedContainer parentElement, System.Action`1[T] onDeleteCriterion) (at Packages/com.unity.visualscripting.entities/Editor/Packages/VisualScripting/Editor/Elements/CriterionRow.cs:103)

      Packages.VisualScripting.Editor.Elements.CriteriaModelRow..ctor (UnityEditor.VisualScripting.GraphViewModel.IGraphElementModel graphElementModel, UnityEditor.VisualScripting.Model.Stencils.CriteriaModel criteriaModel, UnityEditor.VisualScripting.Model.Stencils.Stencil stencil, UnityEditor.VisualScripting.Editor.Store store, UnityEditor.VisualScripting.Editor.Blackboard blackboard, Packages.VisualScripting.Editor.Elements.ExpandedContainer parentElement, System.Action`1[T] onDeleteCriteriaModel) (at Packages/com.unity.visualscripting.entities/Editor/Packages/VisualScripting/Editor/Elements/CriteriaModelRow.cs:76)

      Packages.VisualScripting.Editor.Elements.CriteriaSubSection.AddCriteriaModelRow (UnityEditor.VisualScripting.Model.Stencils.CriteriaModel criteriaModel, UnityEditor.VisualScripting.GraphViewModel.IGraphElementModel graphElementModel, Packages.VisualScripting.Editor.Elements.ExpandedContainer expandedContainer) (at Packages/com.unity.visualscripting.entities/Editor/Packages/VisualScripting/Editor/Elements/CriteriaSubSection.cs:162)

      Packages.VisualScripting.Editor.Elements.CriteriaSubSection.AddCriteriaModelRows (Packages.VisualScripting.Editor.Stencils.IIteratorStackModel iteratorStackModel, Packages.VisualScripting.Editor.Elements.ExpandedContainer expandedContainer) (at Packages/com.unity.visualscripting.entities/Editor/Packages/VisualScripting/Editor/Elements/CriteriaSubSection.cs:151)

      Packages.VisualScripting.Editor.Elements.CriteriaSubSection.BuildCriteriaForIteratorStackModel (System.Int32& nbRows, Packages.VisualScripting.Editor.Stencils.IIteratorStackModel iteratorStackModel, Packages.VisualScripting.Editor.Elements.ExpandedContainer expandedContainer) (at Packages/com.unity.visualscripting.entities/Editor/Packages/VisualScripting/Editor/Elements/CriteriaSubSection.cs:132)

      Packages.VisualScripting.Editor.Elements.CriteriaSubSection..ctor (UnityEditor.VisualScripting.Model.Stencils.Stencil stencil, Packages.VisualScripting.Editor.Stencils.IIteratorStackModel iteratorStackModel, UnityEditor.VisualScripting.Editor.Store store) (at Packages/com.unity.visualscripting.entities/Editor/Packages/VisualScripting/Editor/Elements/CriteriaSubSection.cs:75)

      Packages.VisualScripting.Editor.Stencils.IteratorStackNode..ctor (UnityEditor.VisualScripting.Editor.Store store, Packages.VisualScripting.Editor.Stencils.IIteratorStackModel model, UnityEditor.VisualScripting.Editor.INodeBuilder builder) (at Packages/com.unity.visualscripting.entities/Editor/Stencils/IteratorStackNode.cs:19)

      Packages.VisualScripting.Editor.Stencils.EcsGraphElementFactoryExtensions.CreateOrderedStack (UnityEditor.VisualScripting.Editor.INodeBuilder builder, UnityEditor.VisualScripting.Editor.Store store, UnityEditor.VisualScripting.Model.Stencils.IOrderedStack model) (at Packages/com.unity.visualscripting.entities/Editor/Stencils/EcsGraphElementFactoryExtensions.cs:14)

      System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <23c160f925be47d7a4fd083a3a62c920>:0)

      Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.

      System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <23c160f925be47d7a4fd083a3a62c920>:0)

      System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <23c160f925be47d7a4fd083a3a62c920>:0)

      UnityEditor.VisualScripting.Editor.GraphElementFactory.CreateUI (UnityEditor.Experimental.GraphView.GraphView graphView, UnityEditor.VisualScripting.Editor.Store store, UnityEditor.VisualScripting.GraphViewModel.IGraphElementModel model) (at Packages/com.unity.visualscripting/Editor/VisualScripting/Editor/Helpers/GraphElementFactory.cs:37)

      UnityEditor.VisualScripting.Editor.VseUIController.RebuildAll (UnityEditor.VisualScripting.Editor.State state) (at Packages/com.unity.visualscripting/Editor/VisualScripting/Editor/Views/VseUIController.cs:237)

      UnityEditor.VisualScripting.Editor.VseUIController.UpdateTopology () (at Packages/com.unity.visualscripting/Editor/VisualScripting/Editor/Views/VseUIController.cs:113)

      UnityEditor.VisualScripting.Editor.VseWindow.StoreOnStateChanged () (at Packages/com.unity.visualscripting/Editor/VisualScripting/Editor/VseWindow.cs:579)

      UnityEditor.EditorCommon.Redux.Store`1[TState].InvokeStateChanged () (at Packages/com.unity.visualscripting/Editor/EditorCommon/Redux/Store.cs:191)

      UnityEditor.EditorCommon.Redux.Store`1[TState].Update () (at Packages/com.unity.visualscripting/Editor/EditorCommon/Redux/Store.cs:176)

      UnityEditor.VisualScripting.Editor.VseWindow.Update () (at Packages/com.unity.visualscripting/Editor/VisualScripting/Editor/VseWindow.cs:736)

      System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <23c160f925be47d7a4fd083a3a62c920>:0)

      Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.

      System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <23c160f925be47d7a4fd083a3a62c920>:0)

      System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <23c160f925be47d7a4fd083a3a62c920>:0)

      UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:348)

      UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:342)

      UnityEditor.HostView.SendUpdate () (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:454)

      UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at C:/buildslave/unity/build/Editor/Mono/EditorApplication.cs:303)
    • Opening a graph always starts at the center of the graph, even if there's nothing there. I had an instance where I had a few nodes off to the right and didnt notice them until I enabled the minimap.
    • Code (CSharp):
      1. ArgumentException: TagComponent contains a field of System.String, which is neither primitive nor blittable.
      Isn't string a primitive?
    • Search should be a bit more generous in general. ie. I should see 'EntitySpawnerComponent' if I type 'ESC' or 'eSC'. Also 'getinput' should return 'Get Input'.
    • Searching for 'time' returns the first element including the word 'time' (captureDeltaTime) instead of the most accurate match which would just be Time.time.
    • In general, the palette of gray node elements can sometimes blend together, especially when zoomed out. This is mostly due to the 1pixel black stroke around nodes which works great when zoomed in. This includes the upper-left UI that has the same background color as the graph itself. (image attached). What could be useful is a grid pattern in the background (similar to blueprints) to help distinguish nodes and also work as a visual cue to your current zoom amount.
     

    Attached Files:

  41. Soaryn

    Soaryn

    Joined:
    Apr 17, 2015
    Posts:
    173
    String is a reference value, use NativeStringXX (what ever size you need)

    Also note, inheritance is not a data oriented concept.
     
    hippocoder likes this.
  42. winxalex

    winxalex

    Joined:
    Jun 29, 2014
    Posts:
    115
    At very short overview of current progress I've notice this:
    1) Separate nodes for Add,Sub,Mul + Operators so formula like a+b OR a-b will lead to 3 nodes, and 10 clicks + if want to use Math.abs of a+b will need whole day clickin :F... So low leveling of the operation doesn't lead always to good design but to over complexity of the graph, so expression evaluator will significantly improve experience, also user can create own nodes from formulas(who will type same formula again and again). Expression evaluators can do even if(condition,then,else), so creating Branch and similar nodes is Futile work copying Caker or OLD.
    2) Although I have some experience in Unity, I couldn't manage to create simple key.UP input at all, and was in mind to create trigger with values going 0 to 1f while I'm holding. And probably couldn't do without 4-5 components which is again over complexity. Why not, also I create new Input right here right now, on a InputNode, or at least open InputManager.asset with simple click.
    3) Main power of Unity that was designed to have visual experience(they designed to be similar to UI or Max or May,have editor to tweak the values and what is most important to see values changing runtime. Jobs although bring us imense speed, we lost our creativity and to debug visually. Frame by Frame and track how the data flow goes.
    ....enough wobbling for now :)
     
    Last edited: May 31, 2019
    jokemon likes this.
  43. interpol_kun

    interpol_kun

    Joined:
    Jul 28, 2016
    Posts:
    69
    Okay, let me ask a few questions.
    1. How many systems will be in Unity in the far future? Only DOTS? Will the GameObject be a thing?
    2. If GO still will be a part of Unity in a long term, will it eventually support the VS?
    3. If VS won't support the GO system and will be tied up with DOTS only, what's the point of the VS system that is not capable to cover the whole Unity API?
    I saw you mentioned BluePrints and that you don't mimic them. But they do cover almost everything you can do with the Engine via C++. It's a very solid, large and multi-purpose VS solution. Unity needs some love here too.

    And some off-topic. With so many windows (VS, SG etc.) Unity needs the top-layer tabs to split the workflow. It's too cluttered to work like that.
     
    Lars-Steenhoff likes this.
  44. thierry_unity

    thierry_unity

    Unity Technologies

    Joined:
    Jun 10, 2015
    Posts:
    172
    Hi, What you seem to be looking for are mostly things that will come with High Level nodes, which are not part of Drop-1. We'll start providing some with Drop-2 in June and more with each subsequent iffering.
    1) There is already a node made for that specific purpose called Inline Expression. I think that’s what you are looking for.
    2) Unfortunately this kind of events is not supported yet; only the input down is sort of handled with the current version.
    3) Tracing and tools to debugs aren’t available yet. We had to disable the features before shipping because they were unusable in the current state of things, but they are definitely on our radar and should ship later this year.

    If I understand the questions correctly, you want to know if we will support GO and Monobehaviours? For that, I'd stay it's not really the plan for us. there are already plenty of solutions that already does a great job doing it. I can suggest Bolt on the Asset Store that does an awesome job for most of our users. We are really DOTS centric, like mentioned earlier in the thread

    Hope it answer it all!
     
    Last edited: May 30, 2019
  45. Kichang-Kim

    Kichang-Kim

    Joined:
    Oct 19, 2010
    Posts:
    246
    Hi, I found that Visual Scripting packages are depend on Roslyn (com.unity.code-analysis package). I used Roslyn dll for my own package, so importing Visual Scripting pacakge makes dll conflict. Can I use safely com.unity.code-analysis package for my own custom packages?

    Edit: Also, it seems that there is no XML documentation file in com.unity.code-analysis. If the code-analysis packages will be public, adding XML documentation for dlls will be very helpful for Unity users.
     
    Last edited: May 31, 2019
  46. jocelyn_legault

    jocelyn_legault

    Unity Technologies

    Joined:
    Jan 16, 2019
    Posts:
    1
    As far as I understand, com.unity.code-analysis was created for that exact reason (i.e. avoiding dll conflicts with user projects). So it should be safe for you to use com.unity.code-analysis instead of using your own copy of the dll.

    I agree 100%. I'll be in contact with the package maintainer to let them know.
     
    Jes28, Kichang-Kim and thierry_unity like this.
  47. mathieur

    mathieur

    Unity Technologies

    Joined:
    Jul 22, 2015
    Posts:
    28
    Hello! Thank you for the feedback. We do have the intention of fixing this issue in an upcoming release of the code analysis package (which should be soon) by making the DLL explicitly referenced instead of automatically. I will try to find the xml documentation to add to it too as it would indeed help a lot in development.
     
  48. Kichang-Kim

    Kichang-Kim

    Joined:
    Oct 19, 2010
    Posts:
    246
    Sorry for out of topics, but I want to know how to find these "hidden packages for external library" like com.unity.code-analysis. These packages are not shown in Package Manager (with staging repository in manifest.json) also https://docs.unity3d.com/Manual/PackagesList.html .

    Is there any method for getting list of "all" packages?
     
  49. mathieur

    mathieur

    Unity Technologies

    Joined:
    Jul 22, 2015
    Posts:
    28
    Unfortunately, not easily at the moment. We don't expose the entire registry content in the package manager UI, only those packages that have been whitelisted. We do have plans to start exposing packages in a more standardized way, but we are not yet there.

    Currently, as a hack-ish work-around, you can use the scope registry feature that bypasses whitelisting by adding the unity registry as a scope registry, which will make package manager UI show all packages. Note that there's usually a reason we don't show non-whitelisted packages (low quality, no documentation, etc...), so this won't necessarily give you the best user experience.

    As an example, you would add this to your project's manifest.json file:

    Code (JavaScript):
    1.    "scopedRegistries": [
    2.      {
    3.        "name": "Staging",
    4.        "url": "https://api.bintray.com/npm/unity/unity/",
    5.        "scopes": [
    6.          "com.unity"
    7.        ]
    8.      }
    9.    ],
    10.  
     
  50. ans_unity

    ans_unity

    Unity Technologies

    Joined:
    Oct 12, 2017
    Posts:
    70
    It's not available in the current experimental build but Visual Scripting will eventually have the ability to trace frame by frame at runtime. Here is an old example (in Monobehaviour land) of what we want to provide. We had to redesign tracing for DOTS and unfortunately the solution is not yet ready.

    https://drive.google.com/file/d/1zmKp3ZDg8h5GB6uhWEb6xjredUyGWK_e/view?usp=sharing
    (new public link!)
     
    Last edited: Jun 5, 2019
Thread Status:
Not open for further replies.