预制件Prefab是一个组件模板,比如在游戏里面要实现开枪的时候会有子弹不停地从枪口飞出来,那么就可以通过Prefab来实现子弹的游戏对象,表示所有的子弹都是从同一个Prefab来构建出来的,也可以理解为克隆出来的。创建Prefab很简单,我直接把hierarachy视图的对象直接拉到Project视图的文件夹里面就创建出了一个一模一样的Prefab模板组件。然后你可以在把这个Prefab拉到hierarachy视图或者Screen视图就可以克隆出来一模一样的游戏对象。如图所示:
如果仅仅是把Prefab作为游戏的背景那就直接拉过去就可以了,如果我们想要在脚本上来构建Prefab对象,比如子弹游戏对象,当开枪的时候子弹不停地飞出来,这时候就可以把Prefab作为一个脚本参数来设置。在脚本里面编写了游戏对象变量之后,打开Inspector视图,把Prefab对象拉到变量的位置就可以了。如图所示:
脚本如下所示:
public GameObject bulletPrefab = null;//子弹游戏对象 在编辑器赋值
......
// 初始化一个子弹的游戏对象
GameObject newBullet = (GameObject)Instantiate(bulletPrefab);