Esempio n. 1
0
        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);
        }