利用Unity制作跑马灯

在Unity中建立6个cube,把标签改成Cube
再建立一个空物体,把此脚本挂入其中

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ChangeColorByTime : MonoBehaviour
{
    private GameObject[] _cubes;  //private两个数组  一个是颜色的 一个是Cube的
    private Color[] _colors;
void Start()  
    {
         //在颜色数组里给上颜色
        _colors = new Color[] { Color.black, Color.blue, Color.green, Color.red, Color.yellow, Color.white };    
        _cubes = GameObject.FindGameObjectsWithTag("Cube"); //让cube数组找到场景中"Cube"的标签
        StartCoroutine("changeColorEnumerator");   //开始启动协同
    }
void Update()
    {
        if (Input.GetKeyDown(KeyCode.Q))  //如果按下Q键  停止协同程序
        {
            StopCoroutine("changeColorEnumerator");
        }
    }
IEnumerator changeColorEnumerator()  //建立协同程序
    {
        int j = 0;
        while (true)
        {
            //i==0  
            for (int i = 0; i < _colors.Length; i++)   //变换颜色
            {
                _cubes[i].GetComponent<MeshRenderer>().material.color = _colors[(i + j) % 6];
            }
            yield return new WaitForSeconds(3);  //每隔3秒变换一次
            j++;
            if (j >= int.MaxValue - 7) //j++不能超过int范围
            {
                j = 0;
            }
        }
    }

你可能感兴趣的:(利用Unity制作跑马灯)