Unity中利用 List 制作跑马灯效果

回顾一下之前在Unity中 做过的跑马灯效果, 利用Sphere[] 数组遍历动态添加颜色,
查找到一点小 bug
1.采用数组, 在Unity 中Sphere 的顺序有所限定
2.需要按照限定的顺序排列Sphere 而不是通过脚本顺序动态添加颜色
故在此采用 List 列表, 具体步骤如下:

Unity 中Sphere 的排列顺序
在这里插入图片描述
游戏视图:
在这里插入图片描述

具体代码如下:

public class qiuChange : MonoBehaviour {
    //List 中存放物体
    private List<GameObject> list;
    //颜色数组
    private Color[] se;
	// Use this for initialization
	void Start () {
        list = new List<GameObject>();  //List 初始化
        for (int i = 0; i < 6; i++)
        {
            list.Add(GameObject.Find("Sphere" + i));    //查找到Unity中所有的Sphere 添加到 list 中
        }
        //颜色数组
        se = new Color[] { Color.black, Color.blue, Color.green, Color.red, Color.yellow, Color.white };
        // 利用协程开启颜色调试
        StartCoroutine("ChangeColor");
	}
	
	// Update is called once per frame
	void Update () {
        if (Input.GetKeyDown(KeyCode.Q)) {
            StopCoroutine("ChangeColor");
        }
        if (Input.GetKeyDown(KeyCode.W))
        {
            StartCoroutine("ChangeColor");
        }
	}
    IEnumerator ChangeColor()
    {
        int j = 0;
        while (true)
        {
            for (int i = 0; i < se.Length; i++)
            {
                list[i].GetComponent<MeshRenderer>().material.color = se[(i + j) % 6];
            }
            // 等待时间 , 自由设定 
            yield return new WaitForSeconds(1);
            j++;           
        }
    }    
}

在这里总结一下需要注意的事项: (仅是个人见解, 如有不足之处, 希望能够得到大家的批评和指点)
1.声明List 需要new 一下 (初始化)列表
2.对List 中添加数据采用   list.add()
3.遍历的时候注意索引的最大值限定
(Index out of range !) 这个问题不容忽视呦
那么 , 最后你就能做出自己想要的效果喽 
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181107224515506.PNG)



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值