public void TestTempAllocationAndDisposal()
    {
        n.AllocateAndAutoDispose(ref array1, 10, Allocator.Temp);
        n.AllocateAndAutoDispose(ref array2, 10, Allocator.Temp);

        Assert.That(array1.IsCreated);
        Assert.AreEqual(array1.Length, 10);
        n.ProcessDisposables(new Unity.Jobs.JobHandle());
        Assert.Throws <InvalidOperationException>(array1.Dispose);
        Assert.Throws <InvalidOperationException>(array2.Dispose);
    }
Ejemplo n.º 2
0
        protected sealed override void OnUpdate()
        {
            var jobHandle = new JobHandle();

            try
            {
                foreach (var componentGroup in ComponentGroups)
                {
                    jobHandle = JobHandle.CombineDependencies(componentGroup.GetDependency(), jobHandle);
                }
                jobHandle = OnUpdate(jobHandle);

                foreach (var componentGroup in ComponentGroups)
                {
                    componentGroup.AddDependency(jobHandle);
                }
            }
            finally
            {
                nativeManager.DisposeTempJobs();
                nativeManager.ProcessDisposables(jobHandle);
            }
        }