Pass on data
Passing on data, a way to use data from outside in your queries
Closure
var intruderPosition = DetectIntruder();
World.Query(in queryDesc, (ref Position pos, ref Velocity vel) => {
MoveTowards(ref pos, ref vel, intruderPosition);
});var intruderPosition = DetectIntruder();
World.Query(in queryDesc, static (ref Position pos, ref Velocity vel) => {
MoveTowards(ref pos, ref vel, intruderPosition);
});Inline query
private struct VelocityUpdate: IForEach<Position, Velocity>
{
public Position IntruderPosition;
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void Update(ref Position pos, ref Velocity vel)
{
MoveTowards(ref pos, ref vel, IntruderPosition);
}
}
var velUpdate = new VelocityUpdate{ IntruderPosition = DetectIntruder(); };
World.InlineQuery<VelocityUpdate, Position, Velocity>(in queryDesc, ref velUpdate);Custom loop
Last updated