示例#1
0
    private void CreateCounters()
    {
        waveCounters = new ArrayList();

        int waveCountersSize = (maxWaves >= maxCountersDisplay) ? maxCountersDisplay : maxWaves;

        for (int i = 0; i < waveCountersSize; i++)
        {
            WaveCounterUIElements waveCounter = new WaveCounterUIElements();

            GameObject newCounter = Instantiate(counterPrefab, counterPrefab.transform.position, counterPrefab.transform.rotation);

            waveCounter.counter = newCounter;
            waveCounter.image   = newCounter.GetComponent <Image>();
            waveCounter.number  = newCounter.GetComponentInChildren <TextMeshProUGUI>();

            newCounter.transform.SetParent(transform, false);
            waveCounter.number.text = ("" + (i + 1));

            waveCounters.Add(waveCounter);
        }

        actualCounterIndex = 0;
        ResetCounterOpacity(actualCounterIndex);
    }
示例#2
0
    public void UpdateCounters()
    {
        WaveCounterUIElements finalCounter = (WaveCounterUIElements)waveCounters[waveCounters.Count - 1];
        int finalCounterNumber             = int.Parse(finalCounter.number.text);

        if (actualCounterIndex < waveCounters.Count - 1)   // Didn't reach the end

        {
            ReduceCounterOpacity(actualCounterIndex);

            actualCounterIndex++;

            ResetCounterOpacity(actualCounterIndex);
        }
        else if (finalCounterNumber < maxWaves)   // Has reached the end but not the final wave

        {
            ArrayList destroyCounters = new ArrayList();

            foreach (WaveCounterUIElements counter in waveCounters)
            {
                int updatedNumber = (waveCounters.Count + int.Parse(counter.number.text));

                if (updatedNumber > maxWaves)
                {
                    destroyCounters.Add(counter);
                }
                else
                {
                    counter.number.text = "" + updatedNumber;
                }
            }

            foreach (WaveCounterUIElements counter in destroyCounters)
            {
                waveCounters.Remove(counter);
                Destroy(counter.counter);
            }

            actualCounterIndex = 0;
            ReduceCounterOpacity(waveCounters.Count - 1);
            ResetCounterOpacity(actualCounterIndex);
        }
    }
示例#3
0
    private void ResetCounterOpacity(int i)
    {
        WaveCounterUIElements counter = (WaveCounterUIElements)waveCounters[i];

        counter.image.color = new Color(255, 255, 255, 1f);
    }