该示例主要的内容:
1.URPMaterialPropertyBaseColor:Unity.Rendering空间下的材质组件,该结构体拥有一个float4颜色的变量,赋值和其他的组件一样
2.EntityQuery转数组
boxQuery.ToComponentDataArray<LocalTransform>(Allocator.Temp);
3.IJobChunk的使用
new CollisionJob
{
//获取LocalTransform组件的句柄
LocalTransformTypeHandle = SystemAPI.GetComponentTypeHandle<LocalTransform>(true),
//获取DefaultColor组件的句柄
DefaultColorTypeHandle = SystemAPI.GetComponentTypeHandle<DefaultColor>(true),
//获取URPMaterialPropertyBaseColor组件的句柄
BaseColorTypeHandle = SystemAPI.GetComponentTypeHandle<URPMaterialPropertyBaseColor>(),
//获取实体类型的句柄
EntityTypeHandle = SystemAPI.GetEntityTypeHandle(),
//实体查询对象转化为数组句柄
OtherChunks = boxQuery.ToArchetypeChunkArray(state.WorldUpdateAllocator)
//作业调度, Complete():需要全部完成,然后执行下一次
}.ScheduleParallel(boxQuery, state.Dependency).Complete();
特别注意的是IJobChunk接口中的句柄变量,都需要 [ReadOnly]标签修饰,例如:
ReadOnly\] public ComponentTypeHandle\