Search Unity

New Samples and packages released now

Discussion in 'Entity Component System' started by henrikpAtUnity, May 2, 2018.

  1. henrikpAtUnity

    henrikpAtUnity

    Unity Technologies

    Joined:
    Jan 6, 2017
    Posts:
    37
    We have released new versions of the packages to the staging registry as well as updates to the sample project.
    You can expect detailed release notes to follow.

    For now however main things I would like to point out are:
    • No custom build required anymore, just make sure you have at minimum 2018.1.0f1 and it should work.
    • The 2018.2 betas are now supported and should work with the updated samples and packages.
    So you can use 2018.1, which has now been released, as well as the latest 2018.2 beta. We aim to support both going forward.

    Just grab them from our website or from the Unity Hub as you prefer.

    The samples can be found on GitHub as before.
    If you have your own project you can just grab or modify your manifest based on this one.
    Alternatively open the Package Manager inside Unity under
    Window -> Package Manager
    and update your existing Entities package.
     
  2. Coed

    Coed

    Joined:
    Feb 18, 2016
    Posts:
    13
    Hello,
    I have problem with samples. When I'm openning sample project with 2018.1.0f2 I get DllNotFoundException, Unity can't find burst-llvm.dll file. I checked this directory and .dll file is on its place. I can start project despite this exception, but frame rate is low and editor crashes a lot. Old custom build (2018.1.0b12) works just fine.

    dll1.PNG
     
  3. MartijnGG

    MartijnGG

    Joined:
    May 3, 2018
    Posts:
    74
    Why is
    Code (CSharp):
    1. EntityManager.CreateComponentGroup
    now internal instead of public?
     
    xenonsin and S_Darkwell like this.
  4. S_Darkwell

    S_Darkwell

    Joined:
    Oct 20, 2013
    Posts:
    320
    Hello,

    Like @Bitslide, I was surprised to discover that CreateComponentGroup has been made internal.

    Currently, I'm using CreateComponentGroup to retrieve entities in a test fixture from which I inherit all of my game's unit tests. Is there an alternative that I should be using for retrieving entities containing specific components from outside of a ComponentSystem?

    Of course, in my case, I can create spy ComponentSystems to get their entities, but I'm curious about the benefit of that change.

    Thank you in advance and be well!
    - S.
     
  5. vanxining

    vanxining

    Joined:
    Mar 29, 2018
    Posts:
    20

    From the doc:
    EntityManager.CreateComponentGroup is no longer public, use ComponentSystem.GetComponentGroup instead.
     
    S_Darkwell likes this.
  6. S_Darkwell

    S_Darkwell

    Joined:
    Oct 20, 2013
    Posts:
    320
    @vanxining:

    Thank you for sharing that quote from the changelog. :)

    I did read that, which that is why I mentioned creating a spy ComponentSystem.

    Since EntityManager.CreateComponentGroup is a protected method, the only way to access it is from within a ComponentSystem instance, or a class that inherits from ComponentSystem. Thus, one approach to creating unit tests to confirm the contents of a ComponentSystem would be to create, for example, a TestExampleSystem that inherits from ComponentSystem and has a public method that calls GetComponentGroup within it.

    While I acknowledge that this is a valid approach, it's far more complicated than simply invoking EntityManager.GetComponentGroup() from a test function. What once only required a single line of code now also requires an a ComponentSystem spy class with a getter method.

    I'm simply curious as to the logic/benefits behind making EntityManager.CreateComponentGroup internal, and by implication, also whether or not its affects on Unit Tests/Test Driven Development were considered.

    Apologies if my original message is unclear.

    Thank you and be well!
    - S.
     
    vanxining and xenonsin like this.
  7. optimise

    optimise

    Joined:
    Jan 22, 2014
    Posts:
    2,129
    starikcetin likes this.
  8. xenonsin

    xenonsin

    Joined:
    Dec 12, 2013
    Posts:
    20
    We have to add this to every ComponentSystem now just for tests?? Why make EntityManager.CreateComponentGroup internal?

    Code (CSharp):
    1.         new public ComponentGroup GetComponentGroup(params ComponentType[] componentTypes)
    2.         {
    3.             return base.GetComponentGroup(componentTypes);
    4.         }
    5.  
    6.         new public ComponentGroupArray<T> GetEntities<T>() where T : struct
    7.         {
    8.             return base.GetEntities<T>();
    9.         }
     
  9. Spy-Shifty

    Spy-Shifty

    Joined:
    May 5, 2011
    Posts:
    546
    Please read other post instead of asking the same things twise!

    I think it wasn't considered to be public! GetComponentGroup will return either a new ComnponentGroup or will create one for you. Instead of CreateComponentGroup which will just create one.

    -> Performance

    Thats I think why...
     
    S_Darkwell likes this.
  10. MartinGram

    MartinGram

    Administrator

    Joined:
    Feb 24, 2017
    Posts:
    72
    Hi! Unite Berlin is getting nearer by the minute. We're currently planning to expand on our roadmap plans there.

    For now, ECS continues to be polished and changed based on your feedback. The larger steps ahead will be clear soon enough. :)
     
    Last edited: May 15, 2018
  11. starikcetin

    starikcetin

    Joined:
    Dec 7, 2017
    Posts:
    340
    I am not seeing any Entities package in the package manager window of 2018.1.0f2. Is the package only available for the beta version?
     
  12. Soaryn

    Soaryn

    Joined:
    Apr 17, 2015
    Posts:
    328
    That is if you already have the Entities package "update your existing Entities package".

    If you don't then you will need to edit your manifest like the one you provided in your quote :p
     
    starikcetin and henrikpAtUnity like this.
  13. starikcetin

    starikcetin

    Joined:
    Dec 7, 2017
    Posts:
    340
    I'm getting similar errors on 2018.1.0f2

    Code (csharp):
    1.  (0,0): GetAnalyzersFromCompilation threw an exception: System.ArgumentException: Illegal characters in path.
    2.   at System.IO.Path.GetFileName (System.String path) [0x0001b] in <e1a80661d61443feb3dbdaac88eeb776>:0
    3.   at UnityEditor.Compilation.CodeAnalyzerManager.GetAnalyzersFromCompilation (System.String assemblyFilename, System.String[] unityCompilerArguments) [0x0002e] in <50909ec437ba4fef93e6aebf9535f3b9>:0
    4. System.Threading.ThreadHelper:ThreadStart()
    5.  
    6. (0,0): Unable to start the incremental compiler service:System.Exception: Subscribe exception: EAGAIN(11): Resource temporarily unavailable
    7. System.Threading.ThreadHelper:ThreadStart()
    8.  
    9. (0,0): Object reference not set to an instance of an object

    Also, the Package Manager disappeared from Window menu after importing Entities package.

    ---

    Edit:

    Removing spaces from the path fixes these errors, as can also be found here.
     
    Last edited: May 5, 2018
  14. optimise

    optimise

    Joined:
    Jan 22, 2014
    Posts:
    2,129
    Hi @MartinGram, can know when Reactive System will be released? I think that's the super important feature to write simple code.
     
  15. NawarRajab

    NawarRajab

    Joined:
    Aug 23, 2017
    Posts:
    20
    Hi I'm getting this error in 2018.2.16f1 (It happens in 2018.2.15 and 14)

    Read only asset Packages/com.unity.package-manager-ui/node_modules has no meta file.