首先要说明一下什么是预制体?
在Unity3D里面我们叫它Prefab;我们也可以这样理解:当制作好了游戏组件(场景中的任意一个gameobject
),我们希望将它制作成一个组件模版,用于批量的套用工作,例如说场景中本质上要重复使用的东西,比如:敌人、士兵、子弹或者一个砖块完全相同的墙体。这里说本质是因为默认生成的prefab其实和模版是一模一样的。就像是克隆体,但生成的位置、角度或者一些属性不同(这个就好像c++里边的类一样);
这样看来,Prefab对于我们开发unity3d相当重要。
好了,下边开始介绍如何制作Prefab。
首先创建一个Prefabs文件夹吧。可以将自己制作的Prefab全部放到这个文件夹,这样容易管理。
接着我们在场景中创建一个备选预制件组件,这里就直接创建一个CUBE好了。
这里有2中方法将这个CUBE变为预制体。
1.直接将cube拖拽到Prefabs文件夹里。(真是超级简单)
2.现在Prefabs文件夹里边创建一个预制体。如下图为创建的方法
接着将CUBE拖拽到预制体上。如下图所示:
现在看看场景中的CUBE,可以看到在Inspector面板中看到多了这样一栏,点击select可以
定位到project中预制体的模版“母体”,点击Revert就是还原当前预制体,Apply就是确定当前
预制体了。有兴趣的可以自己试试看看它们的作用。
OK,我们已经创建好了预制体,那么如何使用呢?下面简单介绍一下。
首先创建一个脚本:
写一个公用变量来记录预制体。
//----------------------
//Prefab by cube for spawn
//--------------------------------------
public GameObject _Pre_Cube;
接着在点击鼠标时创建,我这里创建的位置和旋转都是0
void Update()
{
if(Inpute.GetMouseButtonDown(0))
{
Instantiate(_Pre_Cube,Vector3.zero,Quaternion.identity);
}
}
然后布置一下脚本和变量:
运行点击屏幕
可以注意到创建了很多的克隆体。