public GameObject getRandomTrackObjectByType(TrackObject.ObjectType objectType) { List <GameObject> randomPool = new List <GameObject>(); foreach (GameObject currentObject in trackObjectPool) { TrackObject currentTrackObject = currentObject.GetComponent <TrackObject>(); if (currentTrackObject != null) { if (currentTrackObject.positioned == false && currentTrackObject.objectType == objectType) { randomPool.Add(currentObject); } } } if (randomPool.Count > 0) { GameObject selectedTrackObject = randomPool[Random.Range(0, randomPool.Count)]; selectedTrackObject.GetComponent <TrackObject>().positioned = true; selectedTrackObject.gameObject.SetActive(true); return(selectedTrackObject); } return(null); }
private void clearAllRemainPowerupsForType(TrackObject.ObjectType type) { List <GameObject> acitveTracks = GameGlobals.Instance.trackGenerator.getActiveTracks(); foreach (GameObject track in acitveTracks) { Transform trackObjects = track.transform.Find("trackObjects"); if (trackObjects != null) { foreach (Transform trackItem in trackObjects.transform) { TrackObject trackObject = trackItem.GetComponent <TrackObject>(); if (trackObject != null) { if (trackObject.placeHolder == false && trackObject.objectType == type) { trackObject.positioned = false; trackObject.transform.parent = GameGlobals.Instance.trackGenerator.trackObjectsRoot.transform; trackObject.gameObject.transform.position = GameGlobals.Instance.trackGenerator.rootPos; trackObject.gameObject.SetActive(false); } } } } } }