unity3d--预设Prefab与实例Instantiate的基本使用


[Unity3D]预设Prefab与实例Instantiate的基本使用

转载自  dengqingwu   http://www.360doc.com/content/13/0718/21/8378920_300921265.shtml

简介:在Unity3D的工程建设中,Prefabs(预设)是最非常用的一种资源类型,是一种可被重复使用的游戏对象。

特点1它可以被置入多个场景中,也可以在一个场景中多次置入。

特点2:当你在一个场景中增加一个Prefabs,你就实例化了一个Prefabs。

特点3:所有Prefabs实例都是Prefab的克隆,所以如果实在运行中生成对象会有(Clone)的标记。

特点4:只要Prefabs原型发生改变,所有的Prefabs实例都会产生变化。

Prefabs的用法:如果需要创建一些想要重复使用的东西,就该用它了。

在接下来的案例中,我们要使用预设在场景中创建小方块实例以了解Prefabs的使用


1.搭建基础的场景:

一个地板Plain一个下落的立方体Cube,调整摄像机的角度和位置,加个平行光源DirectionalLight。

同时给立方体加上刚体属性(Component -> Physics -> Rigidbody)。按下键盘的E调整一下方块的角度以便落下时可以滚动一小段距离。

搭建完成的效果如图所示:


2 创建并填充预设

在Preject窗口,右击:Create-> Prefab。此时Prefab为灰色。

然后我们从Hierarchy窗口中将立方体Cube拖到Project窗口新创建的Prefab上。

此时可以看到Hierarchy中的立方体变成了蓝色,Prefabs就完成了填充。


然后你从Preject窗口中将创建的Prefabs拖入Scene窗口中,运行一下便可以看到两个一模一样的小方块



3.在脚本中创建Prefabs实例

接着我们配合Instantiate函数,使用脚本代码创建多个Prefabs的实例。

Instantiate:可以理解成克隆原始物体并且设置位置,角度。

如果一个对象,组件,脚本实例被传入将克隆整个对的层次,以及所有子对象。

下面便是具体的操作过程

首先在Project窗口点Create -> Javascript创建一个脚本

[javascript] view plain copy print ?
  1. var CubePrefabs : GameObject;  
  2. function Update ()  
  3. {  
  4.     var instance:GameObject=Instantiate(CubePrefabs,transform.position,transform.rotation);  
  5.     //Instantiate用法,注意参数   
  6.     //Pre 用来克隆的Prefabs   
  7.     //transform.position 脚本绑定对象的位置 就像this.transform.…  
  8.     //transform.rotation 脚本绑定对象的角度 就像this.transform.…  
  9. }  
var CubePrefabs : GameObject;
function Update ()
{
	var instance:GameObject=Instantiate(CubePrefabs,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,也就是那个Cube,拖到脚本Pre右边的框上,完成了脚本中变量的绑定。

然后点击一下运行按钮,便会出现成千上万个小方块喷涌而出啦~


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值