Jobs System
Jobs是Unity自己的多线程框架,在这里就对ECS提供了支持。
public class RotationSpeedSystem : JobComponentSystem
{
[ComputeJobOptimization]
struct RotationSpeedRotation : IJobProcessComponentData<Rotation, RotationSpeed>
{
public float dt;
public void Execute(ref Rotation rotation, [ReadOnly]ref RotationSpeed speed)
{
rotation.Value = math.mul(math.normalize(rotation.Value), math.axisAngle(math.up(), speed.Value * dt));
}
}
protected override JobHandle OnUpdate(JobHandle inputDeps)
{
var job = new RotationSpeedRotation() { dt = Time.deltaTime };
return job.Schedule(this, 64, inputDeps);
//64指的是每个JOBS至少分配64个循环,循环可以由此拆分到多个线程同时执行。
}
}
整套东西使用起来还是很简单的,用实现

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



