红绿灯的闪烁
Unity3d的C#语言编程脚本
刚刚接触Unity差不多一个星期,慢腾腾地摸索出了一些东西,我把这些作为我的学习笔记记录下来。我用的unity版本是最新的2019.2.12,C#是在下载unity时自动帮我下载的Visual Studio上写的。
模型的创建
首先是在unity中用Hierarchy的正方体,球体等模型画出一个红绿灯。过程不赘述,效果如图:
脚本编辑
碎碎念
其实我在刚开始做这个脚本的时候真的很头疼,虽然之前学过Java,但是对Unity和C#一点也没有接触过,刚开始学的时候去学校借了一大堆书,没看出个所以然来,后来还是在B站上看了一个视频,跟着up做了一个Roll A Ball,才感觉稍微好了一点。我做的这个红绿灯主要功能就是先亮绿灯,然后黄灯,接着红灯,然后循环……功能很简单,但我也憋了好久。。。最近脑壳不太灵光。
初试
刚开始写这个功能的时候我首先考虑的是如何让这个灯亮起来,要让这个灯亮起来的意思就是让这个球体模型变成 绿色。但是我们不能在unity的inspector上直接给他改颜色,我们现在做好的模型是默认的没有颜色,像图中灰灰的一样。为了虚拟仿真,游戏开始的时候这三个灯应该都是黑色的。所以我们要使他在游戏开始的时候是黑色,亮绿灯,几秒过后又变黑,然后再亮起来……这就涉及到了一个给unity中的物体修改材料的方法,代码如下:
Material material = new Material(Shader.Find("Transparent/Diffuse"));
material.color = Color.black;
GetComponent<Renderer>().material = material;
刚开始的时候我想着红绿灯要计时,所以我必须有个计时器,于是我在网上搜了一大堆关于C#计时器的代码,然而并没有什么卵用……最后我找到了这一段代码:
public class GreenController : MonoBehaviour
{
private