public override void PlaceObstacles(TrackSection target) { var lanes = target.GetLanes(); var position = new Vector3(0, .5f, 0); for (var i = 0; i < lanes.Count; i++) { var lane = lanes[i]; if (i % 2 == (adjusted ? 1 : 0)) { LeanPool.Spawn(obstacle, position, Quaternion.identity, lane, false); } } adjusted = !adjusted; }
/// <summary> /// Loads layer 0 of obstacle data for the target section. The passed layer will be cached so that the next layer can /// be loaded on subsequent calls after loading layer 0 for the subsequent parameter. /// </summary> /// <param name="target"></param> public override void PlaceObstacles(TrackSection target) { var lanes = target.GetLanes(); AddLayer0Data(lanes); AddLayer1Data(lanes); AddLayer2Data(lanes); var lastLayerCount = layer2.Count; for (var lane = 0; lane < lanes.Count; lane++) { var existenceLayer = layer0[lastLayerCount - 1][lane]; var neighborLayer = layer1[lastLayerCount - 1][lane]; var nudgeLayer = layer2[lastLayerCount - 1][lane]; if (existenceLayer.Exists && neighborLayer.Exists && nudgeLayer.Nudge < maximumNudgeDistance) { var position = new Vector3(0, .5f, -(laneLength / 2 - obstacleLength / 2) + nudgeLayer.Nudge); LeanPool.Spawn(obstacle, position, Quaternion.identity, existenceLayer.Track, false); } } }