Exemple #1
0
    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);
    }
Exemple #2
0
    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);
                        }
                    }
                }
            }
        }
    }