[转]Prefabs(预设)与 Instantiate(实例化)

解释:Prefabs(预设)是一种资源类型,可被重复使用的游戏对象。它能够被置入多个场景中,又或者可以在一个场景中被屡次置入。当你在一个场景中增长一个Prefabs,你就实例化了一个Prefabs。全部Prefabs实例都是Prefab的克隆,只要Prefabs原型发生改变,全部的Prefabs实例都会产生变化。html

Prefabs的用法:若是你们要建立一些想要重复使用的东西,那么就该用到它了。编辑器

接下来咱们写个小例子,看看如何使用它this

1 搭建以下场景:一个地板,一个下落的立方体,调整摄像机的角度和位置,加个平行光,位置参考下图的Scene窗口,效果如Game窗口展现的那样。同时给立方体加上刚体属性(Component -> Physics -> Rigidbody)spa

而后调整一下立方体的角度,运行一下,让它滚一下。3d

2  建立Prefabsorm

在Preject窗口,点Create-> Prefab。而后咱们从Hierarchy窗口中将立方体拖到Project窗口新建立的Prefab上。当Hierarchy中的立方体变成了蓝色,Prefabs就完成了填充。htm

而后你从Preject窗口中将建立的Prefabs拖入Scene窗口中,运行一下。就完成了一次克隆。它们就像双胞胎同样。
对象

3  接着咱们配合Instantiate,来用代码建立多个Prefabs的实例。blog

Instantiate:克隆原始物体。设置位置,角度。若是一个对象,组件,脚本实例被传入。将克隆整个对相爱难过的层次,以及全部子对象。游戏

各位同窗,让咱们在Project窗口点Create -> Javascript建立一个脚本

我发现能够用as3的写法来写这里面的js,各位同窗请看

public var Pre:GameObject;//在编辑器中用来绑定的Prefabs

private function Update ():void

{

        var instance:GameObject=Instantiate(Pre,transform.position,transform.rotation);

        //Instantiate用法,注意参数

        //Pre  用来克隆的Prefabs

        //transform.position  脚本绑定对象的位置 就像this.transform….

        //transform.rotation  脚本绑定对象的角度 就像this.transform….

}

是否是有很亲切的感受?

4 写完脚本,咱们要把它绑定到一个对象上。这时候,咱们能够删除Hierarchy窗口中的立方体,而后建立一个空的游戏对象(GameObject->Create Empty),放置到原来立方体的位置上。将脚本拖放到Hierarchy窗口中的新键的空对象上,让它来执行代码。

5 在Hierarchy窗口中单击空对象,在它的Inspector窗口中就能看到绑定的脚本。而后咱们把早前建立的Prefabs拖到脚本Pre右边的框上,完成了脚本中变量的绑定。

6 按小三角运行一下,搞的像粒子效果同样,是否是很嗨?

 

出自blog: http://blog.sina.com.cn/s/blog_82b6aa3d0100w8sx.html

相关文章
相关标签/搜索