private JobHandle ScheduleMembershipChanges(JobHandle inputDeps) { JobHandle membershipHandle = inputDeps; if (_entitiesWithMembershipChanges.Length > 0) { EntityCommandBuffer.Concurrent buffer = _physicsMembershipBarrier.CreateCommandBuffer(); var membershipJob = new PhysicsMembershipJob { CommandBuffer = buffer, Entities = new NativeArray <Entity>(_entitiesWithMembershipChanges, Allocator.TempJob), Adds = new NativeArray <byte>(_requestedMembershipChanges, Allocator.TempJob), }; membershipHandle = membershipJob.Schedule(_entitiesWithMembershipChanges.Length, 32, inputDeps); _entitiesWithMembershipChanges.Clear(); _requestedMembershipChanges.Clear(); } return(membershipHandle); }
private JobHandle ScheduleMembershipChanges(JobHandle inputDeps) { JobHandle membershipHandle = inputDeps; if (_entitiesWithMembershipChanges.Length > 0) { EntityCommandBuffer.Concurrent buffer = _physicsMembershipBarrier.CreateCommandBuffer(); var membershipJob = new PhysicsMembershipJob { CommandBuffer = buffer, Entities = new NativeArray <Entity>(_entitiesWithMembershipChanges, Allocator.TempJob), Simulations = new NativeArray <byte>(_requestedMembershipChanges, Allocator.TempJob), SleepThreshold = 0.001f, RestingFramesForCandidacyThreshold = 32 }; membershipHandle = membershipJob.Schedule(_entitiesWithMembershipChanges.Length, 32, inputDeps); _entitiesWithMembershipChanges.Clear(); _requestedMembershipChanges.Clear(); } return(membershipHandle); }