public void Execute() { var distances = new NativeArray <ushort>(field.spans.Length, Allocator.Temp, NativeArrayOptions.UninitializedMemory); VoxelUtilityBurst.CalculateDistanceField(field, distances); output.ResizeUninitialized(field.spans.Length); VoxelUtilityBurst.BoxBlur(field, distances, output); }
public void Execute() { var distances = new NativeArray <ushort>(field.spans.Length, Allocator.Temp, NativeArrayOptions.UninitializedMemory); VoxelUtilityBurst.CalculateDistanceField(field, distances); for (int i = 0; i < distances.Length; i++) { // Note multiplied with 2 because the distance field increments distance by 2 for each voxel (and 3 for diagonal) if (distances[i] < radius * 2) { field.areaTypes[i] = CompactVoxelField.UnwalkableArea; } } }