Unity3D学习笔记之四完善Prefab并添加First Person Controller

来源:互联网 发布:淘宝双12报名条件 编辑:程序博客网 时间:2024/05/17 08:38
好久没学东西并用博客记录了,这个年过的很懒散,慢慢临近开学了,也要提前适应一下,写写东西,这样开学才能更好的进入状态呀~~

本次笔记中,我们将来雕琢一个更加完善的Prefab,并添加一个第一人称角色在场景中。
这一系列教程以及素材均参考自人人素材翻译组出品的翻译教程《Unity游戏引擎的基础入门视频教程》。下载地址附在第二篇笔记中。

     上一篇教程我们创建了一个Prefab,在最后我利用四个Prefab通多顶点捕捉建立一个简易的隧道。这只是为了示意Prefab的便捷性,下面我们先把这个隧道删除到只剩一个Prefab(在左侧Hierarchy视图中删除),然后对我们的Prefab进行更细的雕琢。
     我们的Prefab四面是没有物理体系的,没有厚度,就不会存在物理碰撞等效果,放在地板上的东西会无限下坠。所以我们来为Prefab添加物理组件。
     首先从Hierarchy中展开当前场景中的PFB_Straight,选中MineShaft_Floor
     点击系统菜单的Component,Physics,Box Collider,添加一个盒状的碰撞器



添加后,地板上会有绿色的边框,同时在右侧Inspector视图中会有新添加的Box Collider组件。我们根据自己情况来定义碰撞器的厚度,我这里在Box Collider组件,Size中将Y改为0.01。这个是要看你导入模型的缩放比例,如果你导入的模型格式是3d max的,那应该0.1就可以了。这个自己观察一下,调整一下数值,很薄的一层就可以了。





 建立了Box Collider之后,物体接触地面就不会掉下去。下面右键Assets文件夹,来导入系统自带的package——Character Controller,这个包包含了第一人称视角和第三人称视角的小角色。



我们按默认的全部选中,不去动它,单击Import就可以引入。
        引入之后我们的Assets文件夹下会有一个名为Standard Assets的新的子文件夹。

接下来依次打开文件夹Standard Assets——Character Controllers,我们可以看到一个第三人称的矿工角色和一个第一人称的形似胶囊的角色。
     我们可以选中后在右下角的预览界面拖动查看当前的模型,如下二图。



然后我们要做的是,将第一人称的控制器拖入到我们的Scene场景中,并向上拖动适当调整位置。

此时我们如果点击上方的播放按钮,就可以在我们的场景中自由移动和调整视角,效果如下图。
因为我们没有设置任何的灯光文理和背景颜色等,所以墙壁是黑色的,外面背景是蓝色。如果你播放之后,一直往下掉,那是你的Controller位置太低了,向上平移一下就好。

接下来我们需要规范一下我们的Prefab,我们需要让当前预设体的中心就是物理空间的正中心而且让此Prefab建在坐标原点之上。实际上当前是有一些误差的,点击当前Prefab,在inspector视图中是可以看到这些误差的。所以我们调整一下,让我们的预设体更加完美。
     第一步,先解除当前场景中的父子关系。即在Hierarchy视图中选中PFB_Straight内四个子元素,拖出PFB_Straight的范围。系统此时会提示你,这样做会失去当前的父子关系,我们点击Continue。Hierarchy视图变为如下二图的样子,子元素和我们新建的游戏物体又全部变白。



接下来我们选择空的游戏物体PFB_Straight。因为之前我们有建设隧道或其他之类的动作,所以现在无论地板还是天花板墙面,都不是在一开始我们引入后调整的基于0,0,0的位置了,所以我们首先,先要将四个小部分的坐标修改回去。
     首先选中MineShaft_Floor,我们将其坐标调整为0,0,0,然后按住V像一开始一样把两面墙拖过去,再把MineShaft_Ceiling改为0,0,0就可以了。然后把我们的First person Controller移动到空间内。
     接下来我们再选中那四个小部分,拖入到PFB_Straight中去,我们会发现这次预设体没有变成蓝色。

原因其实很简单,以为我们已经打破了Prefab的父子关系,所以我们选中prefab之后,在inspector视图中点击apply,鼠标停留的时候,他会出现详细的解释。点击apply之后,我们所做的改变会应用到默认的预设体中,即我们后面所拖出来的每个预设体,坐标位置都在物理中心。当然我们也可以点Apply旁边的Revert撤销。


 至此我们完善地创建了一个坐标值和坐标轴都很标准的,地板有物理模型的Prefab,并在Prefab的地板上添加了一个第一人称控制器。

2015.2.27     0:03
By Mr.Losers
7 0