コード例 #1
0
        protected override void OnUpdate()
        {
            int queryLength = m_query.CalculateEntityCount();

            if (queryLength > m_transforms.capacity)
            {
                m_transforms.Dispose();
                m_transforms = new TransformAccessArray(queryLength);
            }

            int transformsLength = m_transforms.length;

            for (int i = 0; i < transformsLength; i++)
            {
                m_transforms.RemoveAtSwapBack(i);
            }

            var jh = Dependency;

            Dependency = default;
            Entities.ForEach((CameraManager manager) =>
            {
                m_transforms.Add(manager.camera.transform);
            }).WithoutBurst().Run();

            var ltws = m_query.ToComponentDataArrayAsync <LocalToWorld>(Allocator.TempJob, out var jh2);

            Dependency = new CopyTransformsJob
            {
                ltws = ltws
            }.Schedule(m_transforms, JobHandle.CombineDependencies(jh, jh2));

            Dependency = ltws.Dispose(Dependency);
        }
        protected override JobHandle OnUpdate(JobHandle inputDeps)
        {
            var copyTransformsJob = new CopyTransformsJob
            {
                LocalToWorlds = _query.ToComponentDataArray <LocalToWorld>(Allocator.TempJob, out inputDeps),
            };

            return(copyTransformsJob.Schedule(_transformAa, inputDeps));
        }
コード例 #3
0
    protected override JobHandle OnUpdate(JobHandle inputDeps)
    {
        NativeArray <PosRot> posRots = new NativeArray <PosRot>(_transformList.Count, Allocator.TempJob);

        new GatherData {
            posRots = posRots
        }.Schedule(_query, inputDeps).Complete();
        var copyTransformsJob = new CopyTransformsJob {
            posRots = posRots
        };

        return(copyTransformsJob.Schedule(_transformAa, inputDeps));
    }