Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice

[RELEASED] Flock Box DOTS 2.0 - Flocking simulator

Discussion in 'Assets and Asset Store' started by check_marc, Mar 19, 2020.

  1. Christ0phoros

    Christ0phoros

    Joined:
    Sep 1, 2019
    Posts:
    13
    HI. I found good solution to improve perfomance of flock. Here is solution. upload_2021-5-22_18-39-31.png
    First we need to change name of this functions to avoid update every frame. After this we need to create seperate scirpt in flock gameobject which will hold all referencecs to our boids.
    upload_2021-5-22_18-43-33.png
    At this moment we have just only one script which is upgrate our boids position.

    Have a nice day ;)
     
    Last edited: May 22, 2021
  2. yaffa

    yaffa

    Joined:
    Nov 21, 2016
    Posts:
    41
    Hi,
    Is it possible to have each set of boids have a variable speed and not the same speed for all?
     
    BigRookGames likes this.
  3. check_marc

    check_marc

    Joined:
    Jan 26, 2013
    Posts:
    56
    @fabciu007 great suggestion for reducing Update() overhead, thanks!

    @yaffa Speed is determined by the BehaviorSettings configuration, so I would create a BehaviorSettings for each set of boids and modify them accordingly.
     
    shyamarama likes this.
  4. yaffa

    yaffa

    Joined:
    Nov 21, 2016
    Posts:
    41
    Hey, Is there a way to tread each Flock with some pareticular Tag? Like if I want to change color of one flock, is there a way of knowing which all boids are in that?
     
  5. check_marc

    check_marc

    Joined:
    Jan 26, 2013
    Posts:
    56
    @yaffa The boids are spawned from prefabs, so if you need to treat two groups differently I would create a separate prefab with whatever component you need to change their color or keep track of them.
     
  6. yaffa

    yaffa

    Joined:
    Nov 21, 2016
    Posts:
    41
    Hey I was trying to get information about all the prefabs moving together. Is there a way to find out by proximity all the boids moving in one flock?
     
  7. yaffa

    yaffa

    Joined:
    Nov 21, 2016
    Posts:
    41
    Is there a way to change the behaviour setting for each prefab seperately?
    I used,
    activeSettings.GetBehavior<ArriveBehavior>().weight = UnityEngine.Random.Range(10, 50);
    but it seems like it applies the same value for all objects with the ArriveBehaviour. Is there a way to change setting for each object seperately?
     
  8. yaffa

    yaffa

    Joined:
    Nov 21, 2016
    Posts:
    41
    I keep getting the error "
    MissingReferenceException: The object of type 'ExternalAgent' has been destroyed but you are still trying to access it.
    Your script should either check if it is null or you should not destroy the object."
    When i destroy or disable a "leader" gameobject. What is the safe way to add or remove leaders from the Flock?
     
  9. check_marc

    check_marc

    Joined:
    Jan 26, 2013
    Posts:
    56
    @yaffa the groups that form are an emergent phenomena and not explicitly defined anywhere. If you wanted to find this information for yourself, you could use StreeringAgent.mySurroundings to get a list of nearby Agents. I'm adding this public property in the next update for cases like this.
    Code (CSharp):
    1. public SurroundingsContainer Surroundings => mySurroundings;
    2.  
    There isn't currently a way to set behavior properties per-Agent. You could create a copy of the configuration asset using
    Code (CSharp):
    1. activeSettings = Instantiate(activeSettings);
    2.  
    The null reference exception is potentially fixed in the latest version. Have you updated to v2.1.1?
     
  10. davitsedrakian

    davitsedrakian

    Joined:
    Jun 23, 2018
    Posts:
    31
    Hello! @check_marc Can I Achieve
    this kind of gameplay with this asset?
     
  11. check_marc

    check_marc

    Joined:
    Jan 26, 2013
    Posts:
    56
    @davitsedrakian you could get a flock of arrows to fly straight together, but if you need responsive control over the swarm FlockBox may not be the right solution.
     
  12. bayrmoglu

    bayrmoglu

    Joined:
    Aug 6, 2021
    Posts:
    8
    I can't connect hunting and hunter please help :(
     
  13. lilacsky824

    lilacsky824

    Joined:
    May 19, 2018
    Posts:
    172
    Have some minor suggest. :p
    Enable DOTS toggle should move to Tools menu instead of creating one menu with only one button.
     
    check_marc likes this.
  14. unity_CD16DECE023386C16006

    unity_CD16DECE023386C16006

    Joined:
    Oct 22, 2021
    Posts:
    1
    Hello!
    I want to be able to set the flockbox' size without affecting the boids. I tried to use the external agent script but it doen't give me the option to attach a behaviour. Is it only for cases when the agent isn't autonomous? I'm kind of stuck with a big box, everytime I try to scale it down, the autonomous agents scale up.
    Do you think there is a way I can fix this?
     
  15. yaffa

    yaffa

    Joined:
    Nov 21, 2016
    Posts:
    41
    NullReferenceException: Object reference not set to an instance of an object
    CloudFine.FlockBox.Agent.UnregisterAgent ()

    i keep getting this error
     
  16. check_marc

    check_marc

    Joined:
    Jan 26, 2013
    Posts:
    56
  17. jeromeWork

    jeromeWork

    Joined:
    Sep 1, 2015
    Posts:
    429
    Hi @check_marc Love the look of this asset. Before I buy it, can I ask about real-world game implementation? i.e. going beyond just the plain boid prefabs shown in the video.
    • Is there any kind of prefab pooling going on?
    • How is the initial spawning occurring? Can waves of 'flocks' be triggered?
    • and what happens if you start destroying or despawning the flocking instances (including the 'leader')? (ie.the boids swarm towards a player who shoots them down. How is this managed in code?
    Thanks
     
  18. check_marc

    check_marc

    Joined:
    Jan 26, 2013
    Posts:
    56
    @jeromeWork
    The FlockBox component has some optional fields for spawning your SteeringAgent prefabs at startup, but you can also instantiate SteeringAgents whenever/wherever you want. As long as they get registered to a FlockBox, they will flock.

    FlockBox doesn't do any pooling, you would need to handle that yourself.

    If you destroy a SteeringAgent, it will automatically unregister itself from its FlockBox in OnDestroy. If a swarm of SteeringAgents are using the LeaderFollow behavior and the leader is destroyed, then the LeaderFollow behavior will have no affect on their steering until a new leader is detected.
     
    jeromeWork likes this.
  19. valentinwinkelmann

    valentinwinkelmann

    Joined:
    Nov 3, 2014
    Posts:
    192
    After importing FlockBox into Unity 2021.3.4f1 URP comes this error

    Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Serialization\BinarySerialization.cs(47,81): error CS8377: The type 'T' must be a non-nullable value type, along with all fields at any level of nesting, in order to use it as parameter 'T' in the generic type or method 'NativeList<T>'
     
  20. check_marc

    check_marc

    Joined:
    Jan 26, 2013
    Posts:
    56
    @Diego_Graphics Looks like an issue with Unity's packages. Try removing the DOTS packages (Burst, Entities, etc). If you're interested in using DOTS, add them back one at a time. If not, uncheck the toggle under FlockBox>Enable DOTS.
     
  21. NinaFranziska

    NinaFranziska

    Joined:
    Apr 7, 2016
    Posts:
    3
    Hey Marc.

    After the last update where an agent is bound to a flock box, I have lost control of how agents (previously external agents) are spawned in world space. No matter if I use the editor or spawn the leader using a script, the leader object is either "respawned" randomly inside the flock box, or using the flock box local space (also if i in my code set the "spawn in world space" bool to true).
    The random spawning would make sense if i added the object using the "starting populations" (where the spawn position could be randomised as we don't set it specifically) , but the flock box should just use the object's position when it exists as a separate gameobject in the hierarchy.

    I see that it works perfectly in the playerController demo, but i can't seem to replicate it.

    Would it be possible to fix this problem, or am I doing something wrong?
     
  22. check_marc

    check_marc

    Joined:
    Jan 26, 2013
    Posts:
    56
    @NinaFranziska looks like I introduced a bug in 2.2, an update will be out soon to fix it. Sorry for the inconvenience.
     
    NinaFranziska likes this.
  23. valentinwinkelmann

    valentinwinkelmann

    Joined:
    Nov 3, 2014
    Posts:
    192
    is it possible to somehow move the flockbox with the player in order to always generate agents in the area of the player? i want to use the flockbox for fishes in a very big world. for that i want to let the flockbox follow the player.

    Of course, the agents themselves shouldn't move with the flockbox, but they would have to despawn and respawn on the other side of the flockbox.
     
  24. check_marc

    check_marc

    Joined:
    Jan 26, 2013
    Posts:
    56
    @Diego_Graphics No but I think this is a use case worth supporting. Keep an eye out for version 2.3 in the next few days.
     
  25. valentinwinkelmann

    valentinwinkelmann

    Joined:
    Nov 3, 2014
    Posts:
    192
    That would be awesome and would add so much more life to my underwater world.
    That would be awesome and would add so much more life to my underwater world.
     
  26. valentinwinkelmann

    valentinwinkelmann

    Joined:
    Nov 3, 2014
    Posts:
    192
    @check_marc
    Damn I just saw that in the last update you added the features mentioned, awesome it now works great in a big world, I'm super curious to add that. Thanks a million for the very fast and accurate update!

    Another question is bothering me. Is it possible to keep the flockbox agents inside a volume, a mesh or a colider? With a square aquarium it wouldn't be a problem since the flockbox itself is square but what do I do with a round tank?
     
    check_marc likes this.
  27. check_marc

    check_marc

    Joined:
    Jan 26, 2013
    Posts:
    56
    @Diego_Graphics
    There's no support for bounding volumes other than a box. The easiest approach for a round tank would a modified version of the Containment behavior that pulls them inside a sphere instead.
     
  28. valentinwinkelmann

    valentinwinkelmann

    Joined:
    Nov 3, 2014
    Posts:
    192
    Thanks I will try that.

    Another thing is that I can't get DOTS to work. I take an empty project, import Flockbox and then go to "FlockBox -> Import DOTS Package" then I go to "FlockBox -> Enable DOTS".
    There is then a long series of DOTS errors:
    Code (CSharp):
    1. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\BlockAllocator.cs(113,22): error CS0246: The type or namespace name 'VMRange' could not be found (are you missing a using directive or an assembly reference?)
    2.  
    3. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityCommandBuffer.cs(96,45): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    4.  
    5. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\EntityQueryManager.cs(874,40): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    6.  
    7. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\EntityQueryManager.cs(882,60): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    8.  
    9. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Types\EntityArchetype.cs(36,76): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    10.  
    11. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\BufferFromEntity.cs(20,84): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    12.  
    13. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\BufferFromEntity.cs(30,72): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    14.  
    15. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ArchetypeChunkArray.cs(24,76): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    16.  
    17. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ArchetypeChunkArray.cs(71,35): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    18.  
    19. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ArchetypeChunkArray.cs(95,69): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    20.  
    21. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\IJobEntityBatchWithIndex.cs(611,74): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    22.  
    23. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ChunkDataGatherJobs.cs(12,74): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    24.  
    25. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\IJobEntityBatchWithIndex.cs(763,74): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    26.  
    27. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ChunkDataGatherJobs.cs(36,74): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    28.  
    29. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ChunkDataGatherJobs.cs(76,74): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    30.  
    31. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ArchetypeChunkArray.cs(1646,31): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    32.  
    33. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\ManagedComponentStore.cs(452,85): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    34.  
    35. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\EntityQuery.cs(184,49): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    36.  
    37. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\EntityQuery.cs(186,79): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    38.  
    39. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\SystemState.cs(59,40): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    40.  
    41. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityCommandBuffer.cs(1709,49): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    42.  
    43. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityCommandBuffer.cs(1975,35): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    44.  
    45. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityCommandBuffer.cs(1993,31): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    46.  
    47. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityCommandBuffer.cs(2002,31): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    48.  
    49. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityCommandBuffer.cs(2038,59): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    50.  
    51. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityCommandBuffer.cs(2105,77): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    52.  
    53. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityCommandBuffer.cs(2111,81): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    54.  
    55. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityCommandBuffer.cs(2489,62): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    56.  
    57. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityCommandBuffer.cs(2580,60): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    58.  
    59. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityCommandBuffer.cs(2588,61): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    60.  
    61. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityCommandBuffer.cs(2601,91): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    62.  
    63. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityCommandBuffer.interop.gen.cs(64,68): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    64.  
    65. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityCommandBuffer.interop.gen.cs(86,80): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    66.  
    67. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\ChunkDataUtility.cs(1097,65): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    68.  
    69. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Types\Archetype.cs(77,38): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    70.  
    71. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Serialization\BinarySerialization.cs(47,81): error CS8377: The type 'T' must be a non-nullable value type, along with all fields at any level of nesting, in order to use it as parameter 'T' in the generic type or method 'NativeList<T>'
    72.  
    73. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\EntityQuery.cs(217,49): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    74.  
    75. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\EntityQuery.cs(233,79): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    76.  
    77. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Diff\EntityDifferComponentChanges.cs(994,35): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    78.  
    79. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Diff\EntityDifferComponentChanges.cs(1069,35): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    80.  
    81. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\EntityQuery.cs(1222,100): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    82.  
    83. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ChunkIterationUtility.cs(328,35): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    84.  
    85. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ChunkIterationUtility.cs(394,35): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    86.  
    87. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ChunkIterationUtility.cs(905,35): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    88.  
    89. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ChunkIterationUtility.cs(944,35): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    90.  
    91. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ChunkIterationUtility.cs(1170,35): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    92.  
    93. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ChunkIterationUtility.interop.gen.cs(221,172): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    94.  
    95. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ChunkIterationUtility.interop.gen.cs(244,203): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    96.  
    97. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ChunkIterationUtility.interop.gen.cs(250,177): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    98.  
    99. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ChunkIterationUtility.interop.gen.cs(273,208): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    100.  
    101. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ChunkIterationUtility.interop.gen.cs(422,148): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    102.  
    103. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ChunkIterationUtility.interop.gen.cs(445,179): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    104.  
    105. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ChunkIterationUtility.interop.gen.cs(451,139): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    106.  
    107. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ChunkIterationUtility.interop.gen.cs(474,170): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    108.  
    109. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ChunkIterationUtility.interop.gen.cs(536,87): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    110.  
    111. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ChunkIterationUtility.interop.gen.cs(558,100): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    112.  
    113. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Diff\EntityDifferComponentChanges.cs(186,78): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    114.  
    115. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Diff\EntityDifferComponentChanges.cs(187,78): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    116.  
    117. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Diff\EntityDifferComponentChanges.cs(838,57): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    118.  
    119. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Diff\EntityDifferComponentChanges.cs(857,60): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    120.  
    121. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Diff\EntityDifferComponentChanges.cs(1209,44): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    122.  
    123. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Diff\EntityDifferComponentChanges.cs(1217,63): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    124.  
    125. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Diff\EntityDifferCopyAndReplace.cs(22,78): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    126.  
    127. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\EntityQueryManager.cs(20,55): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityQueryManager')
    128.  
    129. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\EntityQueryManager.cs(30,56): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityQueryManager')
    130.  
    131. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\EntityQueryManager.cs(393,64): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    132.  
    133. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\EntityQueryManager.cs(405,64): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    134.  
    135. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\EntityQueryManager.cs(444,64): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    136.  
    137. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\EntityQueryManager.cs(709,97): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    138.  
    139. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Diff\EntityDifferCopyAndReplace.cs(172,61): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    140.  
    141. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\EntityQueryManager.cs(799,38): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    142.  
    143. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\EntityQueryManager.cs(801,69): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    144.  
    145. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManager.cs(58,35): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    146.  
    147. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManager.cs(73,36): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    148.  
    149. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerMoveEntities.cs(318,35): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    150.  
    151. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerMoveEntities.cs(452,35): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    152.  
    153. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityComponentStore.cs(390,67): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    154.  
    155. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityComponentStore.cs(412,57): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    156.  
    157. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityComponentStore.cs(478,58): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    158.  
    159. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityComponentStore.cs(829,72): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    160.  
    161. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityComponentStore.cs(856,86): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    162.  
    163. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityComponentStore.cs(1668,94): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityQueryManager')
    164.  
    165. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityComponentStoreCreateDestroyEntities.cs(467,86): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    166.  
    167. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityComponentStoreDebug.cs(171,74): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    168.  
    169. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityComponentStoreDebug.cs(171,101): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    170.  
    171. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityComponentStoreDebug.cs(620,92): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    172.  
    173. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityComponentStoreDebug.cs(630,73): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    174.  
    175. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityComponentStoreDebug.cs(630,107): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    176.  
    177. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityComponentStoreDebug.cs(642,71): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    178.  
    179. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Serialization\SerializeUtility.cs(378,94): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    180.  
    181. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ComponentDataFromEntity.cs(43,42): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    182.  
    183. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\Iterators\ComponentDataFromEntity.cs(52,79): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    184.  
    185. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityComponentStoreCreateDestroyEntities.cs(502,42): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    186.  
    187. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityDataAccess.cs(177,57): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    188.  
    189. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityDataAccess.cs(84,40): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    190.  
    191. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityDataAccess.cs(93,38): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityQueryManager')
    192.  
    193. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerMoveEntities.cs(595,42): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    194.  
    195. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerMoveEntities.cs(612,78): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    196.  
    197. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerMoveEntities.cs(613,78): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    198.  
    199. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerMoveEntities.cs(632,78): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    200.  
    201. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerMoveEntities.cs(633,78): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    202.  
    203. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerMoveEntities.cs(673,78): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    204.  
    205. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerMoveEntities.cs(674,78): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    206.  
    207. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerMoveEntities.cs(722,78): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    208.  
    209. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityDataAccess.cs(167,42): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    210.  
    211. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerMoveEntities.cs(790,78): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    212.  
    213. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerMoveEntities.cs(813,78): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    214.  
    215. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerMoveEntities.cs(910,78): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    216.  
    217. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerMoveEntities.cs(911,78): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    218.  
    219. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\ECBInterop.cs(12,80): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    220.  
    221. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\ECBInterop.interop.gen.cs(69,73): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityDataAccess')
    222.  
    223. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.cs(21,70): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    224.  
    225. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.cs(27,71): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    226.  
    227. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.cs(33,63): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    228.  
    229. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.cs(39,64): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    230.  
    231. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.cs(45,63): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    232.  
    233. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.cs(51,64): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    234.  
    235. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.cs(57,66): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    236.  
    237. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.cs(63,67): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    238.  
    239. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.cs(69,73): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    240.  
    241. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.cs(75,74): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    242.  
    243. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.cs(81,66): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    244.  
    245. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.cs(87,67): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    246.  
    247. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.cs(93,69): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    248.  
    249. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.cs(99,64): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    250.  
    251. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.cs(105,62): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    252.  
    253. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.cs(111,57): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    254.  
    255. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.cs(117,58): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    256.  
    257. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.cs(123,64): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    258.  
    259. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(115,78): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    260.  
    261. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(137,91): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    262.  
    263. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(143,79): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    264.  
    265. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(165,92): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    266.  
    267. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(171,71): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    268.  
    269. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(194,102): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    270.  
    271. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(200,72): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    272.  
    273. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(222,85): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    274.  
    275. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(228,71): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    276.  
    277. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(250,84): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    278.  
    279. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(256,72): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    280.  
    281. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(278,85): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    282.  
    283. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(284,74): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    284.  
    285. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(307,105): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    286.  
    287. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(313,75): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    288.  
    289. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(335,88): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    290.  
    291. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(341,81): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    292.  
    293. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(363,94): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    294.  
    295. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(369,82): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    296.  
    297. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(391,95): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    298.  
    299. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(397,74): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    300.  
    301. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(419,87): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    302.  
    303. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(425,75): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    304.  
    305. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(447,88): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    306.  
    307. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(453,77): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    308.  
    309. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(475,90): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    310.  
    311. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(481,72): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    312.  
    313. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(503,85): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    314.  
    315. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(509,70): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    316.  
    317. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(531,83): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    318.  
    319. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(537,65): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    320.  
    321. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(559,78): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    322.  
    323. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(565,66): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    324.  
    325. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(587,79): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    326.  
    327. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(593,72): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')
    328.  
    329. Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities\EntityManagerChangeArchetype.interop.gen.cs(615,85): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('EntityComponentStore')

    I have tested it in 2020.3.33f1 as well as 2021.2.18f1. Here is a screenshot of the packages that are installed by FlockBox:
    upload_2022-5-17_9-32-20.png

    Unfortunately it has already ruined one project for me, deleting the packages then also quickly leads to the destruction of other dependencies, e.g. if you use other DOTS based assets like Vegetation Studio Pro.
     
  29. check_marc

    check_marc

    Joined:
    Jan 26, 2013
    Posts:
    56
    @Diego_Graphics

    I can't reproduce this issue locally when I import into a new project, but I've encountered errors like this in the past while working with DOTS packages. This looks like an issue with the com.unity.entities package not FlockBox. I would try deleting the Library\PackageCache folder while the project is closed, and letting it rebuild when you open the project.
     
  30. Nickjh82

    Nickjh82

    Joined:
    Mar 30, 2020
    Posts:
    11
    Hi, brilliant asset. Having no issues with it whatsoever, but actually more of a curiosity. I'm relatively new to coding and have been looking at a similar system in some personal projects regarding the way this project has stored the behaviours onto scriptable objects. When I've tried to do something this way agents end up pulling from the same data of the original object? How did you navigate this issue?

    No problems if you can't elaborate for any reason or have no idea what I'm on about! Just on a learning journey. haha. Again fantastic asset. Thankyou.
     
  31. check_marc

    check_marc

    Joined:
    Jan 26, 2013
    Posts:
    56
    @ShakesUK I got around this issue by instantiating the behaviors as ScriptableObjects and adding them to the BehaviorSettings asset with AssetDatabase.AddObjectToAsset() so they would serialize by reference instead of value.

    Since then Unity has added this attribute.

    https://docs.unity3d.com/ScriptReference/SerializeReference.html
     
  32. Nickjh82

    Nickjh82

    Joined:
    Mar 30, 2020
    Posts:
    11
    @check_marc Ah that's awesome thank you. I'll start digging into it. Much appreciated.
     
  33. AntLewis

    AntLewis

    Joined:
    Feb 2, 2010
    Posts:
    258
    Hey @check_marc, what's the best way to detect in an arrive behaviour is executing?
     
  34. check_marc

    check_marc

    Joined:
    Jan 26, 2013
    Posts:
    56
    @AntLewis In the behavior settings there's an option to draw a debug line representing the force applied by that behavior. If there's no line then you'll know that Arrive isn't finding any targets to arrive at.
     
  35. tomraegan

    tomraegan

    Joined:
    Mar 28, 2016
    Posts:
    137
    Hi!

    Love the system. Saw it in action and thought it quite beautiful.

    Im trying to swap the pyramid for an animated deer, which I can do. With their animator disabled, all works well. But when I enable the deer's run animation, they go quite bit chaotic in their movement. They basically ignore all of their behaviours, travel super fast and in every direction.

    I did see earlier in this thread someone with a running herd of deer, so I know there's a solution. Any ideas would be welcome. Thanks!
     
  36. Noomnahor

    Noomnahor

    Joined:
    Jan 20, 2018
    Posts:
    14
    Hey there, very happy with this asset so far, however I am having issues getting it to play nice in DOTS when Agents have pre-existing Physics components (Shape and a Body)

    I seem to get two errors mainly:
    Code (CSharp):
    1. InvalidOperationException: The BlobAssetReference is not valid. Likely it has already been unloaded or released.
    2. Unity.Entities.BlobAssetReferenceData.ValidateNonBurst () (at Library/PackageCache/com.unity.entities@0.51.0-preview.32/Unity.Entities/Blobs.cs:260)
    3. Unity.Entities.BlobAssetReferenceData.ValidateNotNull () (at Library/PackageCache/com.unity.entities@0.51.0-preview.32/Unity.Entities/Blobs.cs:277)
    4. Unity.Entities.BlobAssetReference`1[T].get_Value () (at Library/PackageCache/com.unity.entities@0.51.0-preview.32/Unity.Entities/Blobs.cs:385)
    5. Unity.Physics.Broadphase+PrepareDynamicBodyDataJob.ExecuteImpl (System.Int32 index, System.Single aabbMargin, Unity.Mathematics.float3 gravity, System.Single timeStep, Unity.Collections.NativeArray`1[T] rigidBodies, Unity.Collections.NativeArray`1[T] motionVelocities, Unity.Collections.NativeArray`1[T] aabbs, Unity.Collections.NativeArray`1[T] points, Unity.Collections.NativeArray`1[T] filtersOut, Unity.Collections.NativeArray`1[T] respondsToCollisionOut) (at Library/PackageCache/com.unity.physics@0.51.0-preview.32/Unity.Physics/Collision/World/Broadphase.cs:768)
    6. Unity.Physics.Broadphase+PrepareDynamicBodyDataJob.Execute (System.Int32 index) (at Library/PackageCache/com.unity.physics@0.51.0-preview.32/Unity.Physics/Collision/World/Broadphase.cs:748)
    7. Unity.Jobs.IJobParallelForExtensions+ParallelForJobStruct`1[T].Execute (T& jobData, System.IntPtr additionalPtr, System.IntPtr bufferRangePatchData, Unity.Jobs.LowLevel.Unsafe.JobRanges& ranges, System.Int32 jobIndex) (at <db7f68c084e842d98504c53b2b4dd3db>:0)
    8. Unity.Jobs.JobHandle:ScheduleBatchedJobsAndComplete(JobHandle&)
    9. Unity.Jobs.JobHandle:Complete()
    10. Unity.Entities.ComponentDependencyManager:CompleteReadAndWriteDependencyNoChecks(Int32) (at Library/PackageCache/com.unity.entities@0.51.0-preview.32/Unity.Entities/ComponentDependencyManager.cs:334)
    11. Unity.Entities.ComponentDependencyManager:CompleteDependenciesNoChecks(Int32*, Int32, Int32*, Int32) (at Library/PackageCache/com.unity.entities@0.51.0-preview.32/Unity.Entities/ComponentDependencyManager.cs:194)
    12. Unity.Entities.EntityQueryImpl:CompleteDependency() (at Library/PackageCache/com.unity.entities@0.51.0-preview.32/Unity.Entities/Iterators/EntityQuery.cs:1306)
    13. Unity.Entities.EntityQueryImpl:ToComponentDataArray(Allocator, EntityQuery) (at Library/PackageCache/com.unity.entities@0.51.0-preview.32/Unity.Entities/Iterators/EntityQuery.cs:828)
    14. Unity.Entities.EntityQuery:ToComponentDataArray(Allocator) (at Library/PackageCache/com.unity.entities@0.51.0-preview.32/Unity.Entities/Iterators/EntityQuery.cs:1827)
    15. BoidSystem:OnUpdate() (at Assets/Scripts/ECS/Systems/BoidSystem.cs:30)
    16. Unity.Entities.SystemBase:Update() (at Library/PackageCache/com.unity.entities@0.51.0-preview.32/Unity.Entities/SystemBase.cs:400)
    17. Unity.Entities.ComponentSystemGroup:UpdateAllSystems() (at Library/PackageCache/com.unity.entities@0.51.0-preview.32/Unity.Entities/ComponentSystemGroup.cs:583)
    18. Unity.Entities.ComponentSystemGroup:OnUpdate() (at Library/PackageCache/com.unity.entities@0.51.0-preview.32/Unity.Entities/ComponentSystemGroup.cs:529)
    19. Unity.Entities.ComponentSystem:Update() (at Library/PackageCache/com.unity.entities@0.51.0-preview.32/Unity.Entities/ComponentSystem.cs:114)
    20. Unity.Entities.ComponentSystemGroup:UpdateAllSystems() (at Library/PackageCache/com.unity.entities@0.51.0-preview.32/Unity.Entities/ComponentSystemGroup.cs:583)
    21. Unity.Entities.ComponentSystemGroup:OnUpdate() (at Library/PackageCache/com.unity.entities@0.51.0-preview.32/Unity.Entities/ComponentSystemGroup.cs:523)
    22. Unity.Entities.ComponentSystem:Update() (at Library/PackageCache/com.unity.entities@0.51.0-preview.32/Unity.Entities/ComponentSystem.cs:114)
    23. Unity.Entities.DummyDelegateWrapper:TriggerUpdate() (at Library/PackageCache/com.unity.entities@0.51.0-preview.32/Unity.Entities/ScriptBehaviourUpdateOrder.cs:426)
    Code (CSharp):
    1. IndexOutOfRangeException: Index 1071877689 is out of range of '301' Length.
    2. Unity.Collections.NativeArray`1[T].FailOutOfRangeError (System.Int32 index) (at <db7f68c084e842d98504c53b2b4dd3db>:0)
    3. Unity.Collections.NativeArray`1[T].CheckElementReadAccess (System.Int32 index) (at <db7f68c084e842d98504c53b2b4dd3db>:0)
    4. Unity.Collections.NativeArray`1[T].get_Item (System.Int32 index) (at <db7f68c084e842d98504c53b2b4dd3db>:0)
    5. Unity.Physics.BoundingVolumeHierarchy.Refit (Unity.Collections.NativeArray`1[T] aabbs, System.Int32 nodeStartIndex, System.Int32 nodeEndIndex) (at Library/PackageCache/com.unity.physics@0.51.0-preview.32/Unity.Physics/Collision/Geometry/BoundingVolumeHierarchyBuilder.cs:572)
    6. Unity.Physics.BoundingVolumeHierarchy.BuildBranch (Unity.Collections.NativeArray`1[T] points, Unity.Collections.NativeArray`1[T] aabb, Unity.Physics.BoundingVolumeHierarchy+Builder+Range range, System.Int32 firstNodeIndex) (at Library/PackageCache/com.unity.physics@0.51.0-preview.32/Unity.Physics/Collision/Geometry/BoundingVolumeHierarchyBuilder.cs:741)
    7. Unity.Physics.BoundingVolumeHierarchy+BuildBranchesJob.Execute (System.Int32 index) (at Library/PackageCache/com.unity.physics@0.51.0-preview.32/Unity.Physics/Collision/Geometry/BoundingVolumeHierarchyBuilder.cs:814)
    8. Unity.Jobs.IJobParallelForDeferExtensions+JobParallelForDeferProducer`1[T].Execute (T& jobData, System.IntPtr additionalPtr, System.IntPtr bufferRangePatchData, Unity.Jobs.LowLevel.Unsafe.JobRanges& ranges, System.Int32 jobIndex) (at Library/PackageCache/com.unity.jobs@0.51.0-preview.32/Unity.Jobs/IJobParallelForDefer.cs:57)

    As far as I can tell this seems to be some kind of conflict between the Physics engine and the libraries internal Velocity/Collision systems. Though when going through the code I can't find anything obvious.

    I have quite a complex physics interaction system already, that relies on the physics bodies and colliders on my entities, and I would ideally love to be able to keep this, but let flockbox take over the driving (I currently just use custom systems to set their PhysicsVelocity). Is this possible at all, or is there just no compatibility with the DOTS Physics engine?
     
  37. Noomnahor

    Noomnahor

    Joined:
    Jan 20, 2018
    Posts:
    14
    I've also just noticed the AvoidanceBehavior results in the entity disappearing. When I investigate in the DOTS Hierarchy, their LocalToWorld transform has NaN for xyz:

    upload_2022-7-11_13-23-50.png

    I've poked about inside the DoSteering method for the AvoidanceSystem and it is getting a float3 with NaNf. I'll continue investigating to see if I can find the root of the cause.
     
  38. tomraegan

    tomraegan

    Joined:
    Mar 28, 2016
    Posts:
    137
    Well, I solved my problem by importing a different skinned mesh and animation from a different asset. It all works beautifully now.
     
    check_marc likes this.
  39. check_marc

    check_marc

    Joined:
    Jan 26, 2013
    Posts:
    56
    @Noomnahor Currently physics-based agents are supported for the single-threaded system but not DOTS, although I wouldn't expect there to be errors. I'll start looking into it as well as the bug in AvoidanceSystem.
     
  40. AntLewis

    AntLewis

    Joined:
    Feb 2, 2010
    Posts:
    258
    Hey @check_marc, just a quick question about the terrain steering agent. If you wanted agents to stop moving up terrain due to it's slope, would you add this to TerrainSterringAgent > UpdateTransform or would you add it as a sterring behaviour? And if so would you derive from ForecastSteeringBehaviour? Any nudges on how to get this going would be appreciated!
    Cheers!
     
    Last edited: Jul 14, 2022
  41. check_marc

    check_marc

    Joined:
    Jan 26, 2013
    Posts:
    56
    @AntLewis I would check the slope in TerrainSteeringAgent.UpdateTransform and use Agent.ThrottleSpeed to slow them down as it got steeper. For areas of the map where they just shouldn't go, I would try ColliderAvoidance with capsule trigger colliders.
     
  42. AntLewis

    AntLewis

    Joined:
    Feb 2, 2010
    Posts:
    258
    Many Thanks
     
  43. Noomnahor

    Noomnahor

    Joined:
    Jan 20, 2018
    Posts:
    14
    Do you have plans to implement DOTS Physics?
    Secondary to a full implementation, just having it not throw errors while Physics bodies are present would be a huge step forward for me. I may be able to then take the underlying Velocity changes calculated by the behaviors and simply apply them to my bodies.
     
  44. check_marc

    check_marc

    Joined:
    Jan 26, 2013
    Posts:
    56
    @Noomnahor I suspect there's a bug in Unity's hybrid conversion system that's causing these errors. You might be able to circumvent it by setting up your Entities manually instead of using the prefab conversion. I do have better DOTS physics support on the roadmap but no estimate on timeline.
     
  45. Frpmta

    Frpmta

    Joined:
    Nov 30, 2013
    Posts:
    488
    I cannot get it to install properly in a clean project. Tried in 2021.3 LTS, 2022.1 and 2022.2 All clean installs while installing the requested DOTS packages.
     

    Attached Files:

    Last edited: Aug 25, 2022
  46. PixelSeeker

    PixelSeeker

    Joined:
    Aug 25, 2022
    Posts:
    1
    @check_marc first of all I want to say your asset on the asset store is definitely worth the money!

    To anyone who has doubts about the above statement:
    Try creating a simple flocking system in Unity's ECS DOTS and compare the time taken multiplied by your hourly salary with the price of the asset... he he he *dies* >D

    I work in a team and we're currently using your flocking system in our game because it is great however i am facing a couple of smaller issues.

    1. Issue: Collision avoidance

    • "Boid TOTAL Disrespecc ;-;"
      This is the main issue I am facing.
      The Boids in my FlockBox have a chance of ignoring any collider at random.
      This is probably not intended. Can you propose a solution?

    • "Boid Disrespecc"
      A FlockBox with a boundary buffer size of > 0
      will let it's boids pass through any collider inside the specified buffer area.
      This behavior could well be intended although it certainly was not expected by me.
    Disrespecc.gif
    Respecc.gif

    -> If the behavior is intended, a little heads-up might help new users like myself. :]​



    2. Issue: Separation & Twitching

    • "Boid Epilepsy"
      Boids inside FlockBoxes that are not "huge" (very scientific, I am aware) will start to twitch at random intervals. This twitching motion becomes extremely apparent with boids that are using a separation behavior.

      Conversely, If i scale the internal scale & cell size of the FlockBox up at the same time
      the overall twitching is reduced. It still is going on but becomes less apparent.

      Screen Capture_select-area_20220825154426.jpg

      Collision&Twitching.gif

      Might this have something to do with the floating precision inside your Velocity calculations?
    • Weights Tuning
      You have mentioned the weights tuning process in one of your reply posts.
      Is there a guide on tuning? I checked the documentation but can't figure out what the best weight settings for my flocks would be. currently I am running on these settings but I don't feel like the weights should be this high.

      Settings Post.png
    • Smoothing Script
      In a reply from a while ago, you have mentioned a smoothing script which i cannot seem to find in my demo scene files. Now, I for one would be really really interested in that script
      (* not a Spice Girls reference).
    I would be really happy about some advice on these issues. :]

    Great work nonetheless!!! Amazing asset! Can Recommend 100%!
     
    Last edited: Aug 25, 2022
  47. check_marc

    check_marc

    Joined:
    Jan 26, 2013
    Posts:
    56
  48. Frpmta

    Frpmta

    Joined:
    Nov 30, 2013
    Posts:
    488
    That clarifies everything.
    I am using 2021.3.0 LTS.
    Entities 0.51 works for 2021.3.4+
    And no 2022 support.

    Oh Unity.
     
    check_marc likes this.
  49. check_marc

    check_marc

    Joined:
    Jan 26, 2013
    Posts:
    56
    @PixelSeeker Thank you for the compliment :)

    1.
    The FlockBox has a "Sleep Chance" parameter under Optimization, which controls how often SteeringAgents will randomly skip re-calculating their velocity to save time. Try setting it to 0 and see if that solves it. (Now that I think about it, this could be property of SteeringAgent instead of the entire FlockBox, in case some SteeringAgents need to be higher-fidelity than others)

    It looks like this corner behavior is caused by Containment (steering away from the edge) canceling out Avoidance (steering towards the edge). Try adding a collider along the edge so Avoidance will try to steer away from both and hopefully out of the corner.


    2.
    I would recommend leaving the transform scale at (1,1,1) and only tuning the Dimensions/Cell Size. I think the difference in twitching that you're seeing is because of the scale of the art relative to the scale of the flock box.

    Try enabling "Draw Debug" and "Debug Draw Steering" to get a better idea of how much relative force each behavior is applying. You probably want them to be roughly even, or at least not so uneven that some behaviors become negligible. This may also help you identify which behavior(s) are contributing most to twitching. You could also try lowering Max Force to soften the overall effect of the steering behaviors.

    The smoothing script is TwitchDampening.cs, which is best used once you've gotten as far as you can with tuning the behaviors (See the TerrainBoid for an example of how to set it up). However I haven't implemented a feature like this for DOTS yet.
     
  50. XyrisKenn

    XyrisKenn

    Joined:
    Dec 8, 2015
    Posts:
    92
    In Unity 2021.3, if I copy my project to a new computer, Flock Box consistently throws many errors indicating libraries might be missing.
    Is there an updated list of packages Flock Box needs? I'm not finding that in the docs or on the Unity store description.