FutureCollision FutureCollisionCheck() { FutureCollision collision = new FutureCollision(); collision.isCollision = false; foreach (CarScript otherCar in cars) { if (!car.isInLeftLane && !otherCar.isInLeftLane) { if (car.PredictFuturePosition(2) == otherCar.PredictFuturePosition(2) && (car.speed > otherCar.speed)) { collision.isCollision = true; collision.carScript = otherCar; collision.collisionLocation = car.PredictFuturePosition(2); } } else if (car.isInLeftLane && otherCar.isInLeftLane) { if (car.PredictFuturePosition(2) == otherCar.PredictFuturePosition(2) && (car.rightLaneSpeed > otherCar.rightLaneSpeed)) { collision.isCollision = true; collision.carScript = otherCar; collision.collisionLocation = car.PredictFuturePosition(2); } } } return(collision); }