protected override JobHandle OnUpdate(JobHandle deps) { deps = _BVH.Calculate(deps, _vehicleGroup.AABB); var senseJob = new SenseEnvironmentJob() { VehicleData = _vehicleGroup.VehicleData, BVHArray = _BVH.BVHArray, HitResult = _vehicleGroup.HitResult, HalfBVHArrayLength = _BVH.BVHArray.Length / 2, }; deps = senseJob.Schedule(Capacity, 64, deps); var vehicleMoveJob = new VehicleMoveJob() { Positions = _vehicleGroup.Position, Rotations = _vehicleGroup.Rotation, VehicleData = _vehicleGroup.VehicleData, RoadNodes = _roadNodes, RoadSegments = _roadSegments, RandSeed = _randSeed, HitResult = _vehicleGroup.HitResult, AABB = _vehicleGroup.AABB, FrameSeed = (uint)Time.frameCount, DeltaTime = Time.deltaTime }; deps = vehicleMoveJob.Schedule(Capacity, 64, deps); return(deps); }
protected override JobHandle OnUpdate(JobHandle deps) { var vehicleAABB = _vehicleGroup.GetComponentDataArray <BVHAABB>(); var vehicleData = _vehicleGroup.GetComponentDataArray <VehicleData>(); var vehicleHitresult = _vehicleGroup.GetComponentDataArray <HitResult>(); deps = _BVH.Calculate(deps, vehicleAABB); var senseJob = new SenseEnvironmentJob() { VehicleData = vehicleData, BVHArray = _BVH.BVHArray, HitResult = vehicleHitresult, HalfBVHArrayLength = _BVH.BVHArray.Length / 2, }; deps = senseJob.Schedule(Capacity, 64, deps); var vehicleMoveJob = new VehicleMoveJob() { Positions = _vehicleGroup.GetComponentDataArray <Position>(), Rotations = _vehicleGroup.GetComponentDataArray <Rotation>(), VehicleData = vehicleData, RoadNodes = _roadNodeGroup.GetComponentDataArray <RoadNode>(), RoadSegments = _roadSegmentGroup.GetComponentDataArray <RoadSegment>(), HitResult = vehicleHitresult, AABB = vehicleAABB, FrameSeed = (uint)Time.frameCount, DeltaTime = Time.deltaTime, BoundingBox = _bound, rdGen = new Unity.Mathematics.Random(_randSeed[Time.frameCount % _randSeed.Length]) }; deps = vehicleMoveJob.Schedule(Capacity, 64, deps); return(deps); }