Unity3D学习笔记九为场景添加细节(二)

上节为场景中添加了第一块带有碰撞器的石头,本节我们来利用Prefab,将场景细节都添加进去,并且做的更完善。

这一系列教程以及素材均参考自人人素材翻译组出品的翻译教程《Unity游戏引擎的基础入门视频教程》,下载链接附在第二篇学习笔记中。

继续来到那块已经成形的石头——Boulder旁边,我们可以制作很多石头的Prefab,这样对于丰富我们巨大的场景很有利,我们先来创建第一个石头的Prefab按下Control+D复制一块石头,按住坐标轴拖动出来,按下R调整到缩放工具,按住中心的白色立方体缩小这块石头。

因为Unity3D中按住中心的白色立方体的缩放是均匀缩放,所以此时这块石头应该是悬空的了,所以按下W切回坐标工具,调整一下他的位置。让他和原来的石头有一定程度的交叠。同时我有在Y轴上单独对他进行了缩放,让他看起来矮一些扁一些,而不是一眼就能看出来是旁边这个石头的小号复制品。

接下来,再复制一个石头,至于复制哪个随意就可以,然后调成更小,让三块石头产生堆叠的效果,成为一个石堆。

接下来我们将这个石堆整合成一个Prefab,现在Prefab文件夹下新建一个Prefab,命名为PFB_Boulder_Cluster。然后在Hierarchy中新建一个游戏物体,同样命名为PFB_Boulder_Cluster,将三个石块拖入到新建的游戏物体中,再将游戏物体拖入到新建的Prefab中,完成。以后再场景中只要想添加石堆,就可以直接用此Prefab。

当你想把对场景其中一个Prefab做的细微调整同步到所有的此Prefab中,并且在以后引入的Prefab也有此次改变的话,只需要在Inspector视图中点击Apply就可以了,但小心一点点的改变会打破原来的场景和谐。

如下二图,在拐角处,我又引入一个Prefab并且旋转了角度调整了比例,但我没有应用Apply,因为应用后所有的Prefab都会被旋转变小。

然后拖入我们之前引入的Mesh模型 Boulder_01,并且在Materials中找到属于他的材质为他贴上。同样的,添加Mesh Collider,调整大小,比例和角度。

最后就是Beam了,将它引入场景,贴上Beam材质。因为他的形状是规则的,所以为它添加Box Collider。Unity自动为我们包裹了大小很合适的Collider,我们要这个横梁是用来作为场景的支撑物的,所以按E使用旋转工具将其旋转90度,让他站起来,木头是比整个空间的高度长不少,可以用R缩放工具,调整一下他的长度。

接下来就是要把我们已经有了Collider的Boulder_01和Beam都制作成Prefab,相信大家对于建Prefab已经轻车熟路了。有了石头堆、石头块、木梁之后,我们就可以极大程度的丰富自己的场景。

下面希望大家按照自己的意愿来装饰我们自己创建的场景,木头,石头,放到你认为好看合理的位置,完成场景的布景,让我们的场景看起来更加完整。

2015.3.8     19:42

By Mr.Losers

时间: 2024-10-05 04:43:41

Unity3D学习笔记九为场景添加细节(二)的相关文章

Unity3D学习笔记之八为场景添加细节(一)

这一系列教程以及素材均参考自人人素材翻译组出品的翻译教程<Unity游戏引擎的基础入门视频教程>,下载链接附在第二篇学习笔记中. 我花了30分钟做了一个中等大小的迷宫场景,不知道大家自己发挥,做的场景大小如何. 在完成场景之后,我们看到Hierarchy视图里面的东西已经满了,所以我们先来整理一下Hierarchy视图.创建一个空的游戏物体命名为Environment. 然后来到Hierarchy视图,先讲First Person Controller找到,挪到最上方,然后选中第一个物体,按住

unity3d学习笔记(十九)--ngui制作3d人物头顶的头像和血条

原地址:http://blog.csdn.net/lzhq1982/article/details/18793479 本系列文章由Aimar_Johnny编写,欢迎转载,转载请标明出处,谢谢. http://blog.csdn.net/lzhq1982/article/details/18793479 先上张图,自己做的一个demo. 这里的人物头像和血条是在3d世界生成的,所以有真正的纵深感和遮挡关系,废话不多说,看我是怎么实现的. 第一步,先在UI Root里制作头像和血条. 这个制作步骤基

angular学习笔记(九)-css类和样式3

再来看一个选择li列表的例子: 点击li中的任意项,被点击的li高亮显示: <!DOCTYPE html> <html ng-app> <head> <title>6.3css类和样式</title> <meta charset="utf-8"> <script src="../angular.js"></script> <script src="scri

angular学习笔记(九)-css类和样式2

在上一个例子中,元素的类名使用拼接的方法,这样,类名中就不得不带有true或false,并且不易维护,所以,angular使用ng-class属性来控制元素的类名: 我们来看一个小例子,点击error按钮,顶部提示错误框,点击warning按钮,顶部提示警告框. 错误框的类名是.err,警告框的类名是.warn: <!DOCTYPE html> <html ng-app> <head> <title>6.2css类和样式</title> <

虚拟机VMWare学习笔记九 - 物理机上的文件挂载到虚拟机上

物理机上的文件夹或盘符直接挂载到虚拟机上使用. VM -- Settings Options -- Shared Folders -- 勾选Always enabled , 勾选Map as a network drive in Windows guests 在点击下面的添加来添加共享的文件夹 选择路径 可以看到虚拟机中的共享文件夹已经出现在Windows 中了 虚拟机VMWare学习笔记九 - 物理机上的文件挂载到虚拟机上

初探swift语言的学习笔记九(OC与Swift混编)

swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,哪就使用混编.这个在IOS8中是允许的. 先中简单的入手,先研究在同一个工程目录下混合使用的情况. 为了演示.先准备两个类 第一个是swift语言写的类,文件名为 act.swift import Foundation class Act : NSObject { func hasAct(tag:Int) -> String { swit

《Hibernate学习笔记九》:多对一和一对多的关联关系

<Hibernate学习笔记九>:多对一和一对多的关联关系 前面介绍了一对一的关联关系在Hibernate应该如何来实现,这篇博文就来介绍下多对一和一对多的关联关系. 多对一和一对多的关联关系在我们的生活中也比较常见,例如,在我们学生时代,一个班级可以有多个学生,而一个学生只能属于一个班级,这就是一个多对一(一对多)的例子: 还有在我们的工作中,一个工作小组可以有多个用户,而一个用户只能属于一个小组,这也是一个多对一(一对多)的关系的例子. 1.多对一的单向关联关系 下面就以一个工作小组可以有

【Cocos2D-X 学习笔记】为精灵添加单点触控

由于Cocos2d-x处于新学的阶段,因此最近也无法进行系统地更新,只会选择一些典型的Demo贴上来,一来是与大家分享,而来也可以作为以后回顾时的参考. 今天介绍一下Cocos2d-x的触摸事件处理,了解Android开发的朋友们知道,Android里会用一个OnClickListener()进行事件监听,而在J2SE中也会有Event类实现专门的监听处理.在Cocos2d-x中,因为是游戏引擎,用户在玩游戏时总是要通过屏幕与游戏进行交互,可想而知触摸事件是主要处理的事件.这里主要讲一下如何为精

APUE 学习笔记(九) 高级I/O

1. 非阻塞I/O 低速系统调用时可能会使进程永远阻塞的一类系统调用,包括以下调用: (1)某些文件类型你(网络socket套接字.终端设备.管道)暂无可使用数据,则读操作可能会使调用者永远阻塞 (2)如果数据不能立即被(1)中文件类型接受,则写操作会使调用者永远阻塞 (3)某些进程间通信函数 非阻塞I/O使我们可以调用open.read.write这样的I/O操作,并使这些操作不会永远阻塞,如果这种操作不能完成,则调用立即出错返回 对于一个给定的文件有两种方法对其指定非阻塞I/O: (1)调用