public void SetTrackSegment(TrackSegment newSeg) { mCurrTrackSegment = newSeg; if (mCurrentLane < 0) { mCurrentLane = mCurrTrackSegment.pNumLanes / 2; } MoveToLane(mCurrentLane); }
private TrackSegment SelectNextTrackSegment() { int rnd = Random.Range(0, mUnusedTrackSegments.Count); TrackSegment outSeg = mUnusedTrackSegments[rnd]; mUnusedTrackSegments.RemoveAt(rnd); mCurrentTrackSegments.Add(outSeg); outSeg.transform.localPosition = new Vector3(0, 0, (mCurrentTrackSegments.Count - 1) * TRACK_SEGMENT_LENGTH); outSeg.gameObject.SetActive(true); outSeg.SetupCollectables(_collectables); return(outSeg); }
private void RefreshTrackSegments() { TrackSegment removedSeg = mCurrentTrackSegments[0]; removedSeg.gameObject.SetActive(false); mCurrentTrackSegments.RemoveAt(0); Vector3 pos = mCurrentTrackSegments[mCurrentTrackSegments.Count - 1].transform.localPosition; TrackSegment newSeg = SelectNextTrackSegment(); pos.z += TRACK_SEGMENT_LENGTH; newSeg.transform.localPosition = pos; mUnusedTrackSegments.Add(removedSeg); }