Ejemplo n.º 1
0
            internal JobHandle Schedule(EntityQuery entityQuery, ComponentSystemBase system, JobHandle jobHandle)
            {
                size = entityQuery.CalculateEntityCount();
                if (capacity < size)
                {
                    // Extend capacity if needed
                    capacity = size;

                    values = new float[capacity];

                    buffer.Dispose();
                    buffer = new ComputeBuffer(capacity, sizeof(float));

                    handler.Dispose();
                    handler = GCHandle.Alloc(values, GCHandleType.Pinned);
                }

                return(prevJobHandle = new FillArrayJob
                {
                    sizeOfValue = SizeOfValue,
                    dynamicType = system.GetArchetypeChunkComponentTypeDynamic(ComponentType.ReadOnly <BoneIndexOffset>()),

                    defaultValue = UnsafeUtility.AddressOf(ref defaultValue),
                    dst = (void *)handler.AddrOfPinnedObject(),
                }.Schedule(entityQuery, jobHandle));
            }