使用Unity3D的内置资源,制作一个简单的游戏项目,通过这个项目,掌握使用Unity3D开发简单游戏的一个基本流程。
![](https://i-blog.csdnimg.cn/blog_migrate/07941c935415eda9e32f22e1e08f4b8b.png)
第一步,使用Unity Hub创建一个项目,选择一个Unity版本之后,点击创建即可。注意,在创建项目的时候,一定要注意,不要勾选PlasticSCM,这个主要用来把你的项目同步到云端的,但是由于Unity云端对于中国开发者来说,速度实在是太慢了,所以在创建的时候一定要记得把勾去掉。
![](https://i-blog.csdnimg.cn/blog_migrate/235501858a8332bf40909a3a7161c3c1.png)
第二步,在新创建的项目中,打开默认场景,也可以自己创建一个场景,打开场景后,看到的界面是一个空旷的空场景,里面只有一个主摄像机和平行光源。
第三步,在Hierarchy面板,右击鼠标,创建一个Cube。
![](https://i-blog.csdnimg.cn/blog_migrate/66c529b23bbcf649b2829d449620167b.png)
第四步,在Project视图中,右击鼠标创建一个C#脚本,脚本的名字改一改,叫CubeItem好了。
![](https://i-blog.csdnimg.cn/blog_migrate/63deaaa38c896dd68b653953adfbf9a4.png)
第五步,在创建的脚本中输入一下代码:
float speed = 5;
void Start()
{
speed = Random.Range(1, 6);
transform.position = new Vector3(Random.Range(-8f, 8f), 7.5f, 0);
}
void Update()
{
Vector3 pos = transform.position;
pos.y -= speed * Time.deltaTime;
transform.position = pos;
if (pos.y <= -7.5f)
{
GameObject.Destroy(this.gameObject);
}
}
private void OnMouseDown()
{
GameObject.Destroy(this.gameObject);
}
在上面代码中,Start函数用来初始化物体的位置和移动速度;Update函数中用来每帧刷新物体的位置,根据速度计算每帧移动的量,并且在pos.y小于等于-7.5f的时候,让物体自己销毁自己。
在项目中,需要利用鼠标的点击,让物体销毁,就是这么一个简单的操作,只要在OnMouseDown函数中,添加自我销毁代码即可。这段代码的意思就是,当鼠标按下时,会触发这个函数。因此只要在这个里面添加销毁自己的代码即可。
第六步,将设置好的Cube设置为预制体,具体操作就是鼠标左键按住Cube,然后拖拽至Project视图下面的任意文件夹下面即可。
![](https://i-blog.csdnimg.cn/blog_migrate/d63526252cc2336a02020da7da99509f.png)
第七步,再创建一个新的脚本,用来作为游戏的主类,管理整个游戏。这个代码挂在主摄像机或一个新创建的空物体上都可以。要保证这个脚本不会消失即可。
代码内容如下:
public static Java01 ins = null;
public GameObject cubeItem;
float freq = 0;
public float freqMax = 2;
public int cubeCount = 1;
private void Awake()
{
ins = this;
}
void Start()
{
}
void Update()
{
if (freq <= 0)
{
CreateCube(cubeCount);
freq = freqMax;
if (freqMax > 1)
{
freqMax -= Time.deltaTime * 3;
}
}
else
{
freq -= Time.deltaTime;
}
if (freqMax >= 1.8f)
{
cubeCount = 1;
}
else if (freqMax >= 1.6f)
{
cubeCount = 2;
}
else if (freqMax >= 1.4f)
{
cubeCount = 3;
}
else if (freqMax >= 1.2f)
{
cubeCount = 4;
}
else
{
cubeCount = 5;
}
}
void CreateCube(int count)
{
for (int i = 0; i < count; i++)
{
GameObject obj = Instantiate(cubeItem);
}
}
其他的说明,请参考一下视频。
疯狂点击01 视频讲解。