public void TestAdd() { var e = EntityManager.CreateEntity(); var item = new Item { Center = new float3(50.5F), Size = new float3(1.1F) }; EntityManager.AddComponentData(e, item); EntityCommandBufferSystem barrier = World.CreateSystem <BeginInitializationEntityCommandBufferSystem>(); var system = World.CreateSystem <SystemTest>(); system.Barrier = barrier; system.Update(); EntityManager.CompleteAllJobs(); barrier.Update(); EntityManager.CompleteAllJobs(); Assert.IsTrue(EntityManager.HasComponent(e, ComponentType.ReadOnly(typeof(ItemMirror)))); Assert.AreEqual(1, EntityManager.GetComponentData <ItemMirror>(e).GetItemID); var sh = system.SpatialHash; Assert.AreEqual(1, sh.ItemCount); Assert.AreEqual(3 * 3 * 3, sh.BucketItemCount); var results = new NativeList <Item>(5, Allocator.TempJob); var bounds = new Bounds(item.GetCenter(), item.GetSize()); sh.CalculStartEndIteration(bounds, out var start, out var end); var hashPosition = new int3(0F); for (int x = start.x; x < end.x; ++x) { hashPosition.x = x; for (int y = start.y; y < end.y; ++y) { hashPosition.y = y; for (int z = start.z; z < end.z; ++z) { hashPosition.z = z; var querryBound = new Bounds(sh.GetPositionVoxel(hashPosition, true), sh.CellSize * 0.99F); results.Clear(); sh.Query(querryBound, results); Assert.AreEqual(1, results.Length); Assert.AreEqual(item, results[0]); } } } results.Dispose(); }