最新文章
Cocos2d-x游戏开发实例详解7:对象释放时机
03-25 13:59
Cocos2d-x游戏开发实例详解6:自动释放池
03-25 13:55
Cocos2d-x游戏开发实例详解5:神奇的自动释放
03-25 13:49
Cocos2d-x游戏开发实例详解4:游戏主循环
03-25 13:44
Cocos2d-x游戏开发实例详解3:无限滚动地图
03-25 13:37
Cocos2d-x游戏开发实例详解2:开始菜单续
03-25 13:32
unity3d prefab重要性
下面将为大家详细讲解Unity3D中Prefab的重要性,主要侧重于Instantiate的基本使用。需注意,个人总结不一定适用于所有同学,仅供参考学习。
一、Prefab简介
在Unity3D的项目开发中,Prefabs(预设)是极为常用的一种资源类型,它是可被重复使用的游戏对象。其主要特点如下:
- 多场景与多次置入:Prefab可以被放置到多个不同的场景中,也能在同一个场景里多次放置。
- 实例化机制:当在一个场景中添加一个Prefab时,实际上是对该Prefab进行了实例化操作。
- 克隆标记:所有Prefab实例都是Prefab原型的克隆体,因此在运行时生成的对象会带有
(Clone)标记。 - 原型驱动变化:一旦Prefab原型发生改变,所有基于该原型创建的Prefab实例都会随之发生相应变化。
Prefab的主要用途在于:当需要创建一些可重复使用的元素时,就可以使用Prefab。接下来,我们将通过一个案例,使用预设在场景中创建小方块实例,以此来深入了解Prefab的使用方法。
二、案例操作步骤
1. 搭建基础场景
首先,搭建一个基础的场景,具体操作如下:
- 创建一个地板(Plane)、一个用于下落的立方体(Cube)。
- 调整摄像机的角度和位置,使其能够合适地观察场景。
- 添加一个平行光源(Directional Light),以照亮场景。
- 为立方体添加刚体属性,具体操作是:选择立方体,然后通过
Component -> Physics -> Rigidbody来添加。 - 按下键盘的
E键,调整方块的角度,让其在落下时可以滚动一小段距离。搭建完成的效果可参考相应截图。
2. 创建并填充预设
在Project窗口中,进行以下操作:
- 右键点击,选择
Create -> Prefab,此时新创建的Prefab显示为灰色。 - 从
Hierarchy窗口中将立方体(Cube)拖动到Project窗口新创建的Prefab上。完成后,Hierarchy中的立方体将变为蓝色,这表示Prefab已填充完成。 - 将
Project窗口中创建好的Prefab拖动到Scene窗口中,运行场景,就可以看到两个一模一样的小方块。
3. 在脚本中创建Prefab实例
接下来,我们将配合Instantiate函数,使用脚本代码创建多个Prefab实例。Instantiate函数的作用可以理解为克隆原始物体,并设置其位置和角度。如果传入一个对象、组件或脚本实例,它将克隆整个对象的层次结构以及所有子对象。具体操作过程如下:
- 在
Project窗口中,选择Create -> Javascript创建一个脚本。脚本代码如下:var CubePrefabs : GameObject;
function Update () { var instance:GameObject = Instantiate(CubePrefabs, transform.position, transform.rotation); // Instantiate用法说明: // CubePrefabs :用来克隆的Prefab // transform.position :脚本绑定对象的位置,类似于this.transform.position // transform.rotation :脚本绑定对象的角度,类似于this.transform.rotation }
<a id="heading-5-4--绑定脚本到对象"></a>
### 4. 绑定脚本到对象
- 完成脚本编写后,需要将其绑定到一个对象上。首先,删除`Hierarchy`窗口中的立方体。
- 创建一个空的游戏对象,操作方法是`GameObject -> Create Empty`,并将其放置到原来立方体的位置。
- 将脚本拖动到`Hierarchy`窗口中新创建的空对象上,让该对象来执行脚本代码。
<a id="heading-6-5--完成变量绑定并运行"></a>
### 5. 完成变量绑定并运行
- 在`Hierarchy`窗口中单击空对象,在其`Inspector`窗口中可以看到绑定的脚本。
- 将早前创建的Prefab(即立方体)拖动到脚本中`CubePrefabs`变量右边的框中,完成脚本中变量的绑定。
- 点击运行按钮,此时便会看到成千上万个小方块不断涌出的效果。