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

好久没学东西并用博客记录了,这个年过的很懒散,慢慢临近开学了,也要提前适应一下,写写东西,这样开学才能更好的进入状态呀~~

本次笔记中,我们将来雕琢一个更加完善的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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity3D学习笔记之五为Prefab添加材质

本次笔记中,我们将利用unity来创建并使用材质,把材质添加到我们的Prefab中去。这一系列教程以及素材均参考自人人素材翻译组出品的翻译教程《Unity游戏引擎的基础入门视频教程》,下载链接附在第二篇学习笔记中。继续上次笔记中所记录的东西&a…

分布式版本控制系统之Git

Git Git 是目前世界上最先进的分布式版本控制系统(没有之一)作用 源代码管理为什么要进行源代码管理? 方便多人协同开发方便版本控制Git的诞生 作者是 Linux 之父:Linus Benedict Torvalds当初开发 Git 仅仅是为了辅助 Linux 内核的开发&…

oo第三次博客-JML规格

这三周的作业主要是围绕以JML来约束代码开发,以确保程序的正确性与鲁棒性。 Part 1:三次作业的实现与bug 第一次作业没有任何算法和数据结构上的难度,对于Path和PathContainer的各个方法的实现按照给出的规格复读即可。唯一的难点&#xff08…

Kinect开发笔记之一Kinect详细介绍

毕业设计的课题我选择了结合Kinect和Unity3D开发体感游戏,这是我十分感兴趣的一个课题,所以做好当然责无旁贷。准备再写一系列Kinect的学习笔记,记录自己毕设一步一个脚印的历程。1、Kinect背景介绍众所周知,Kinect是一款集成了很…

获取2个地址之间的距离(高德API)

2019独角兽企业重金招聘Python工程师标准>>> string startLonLat SiteHelper.GetLonLat("大连"); //获取起始地经度纬度 string endLonLat SiteHelper.GetLonLat("沈阳"); //获取目的地经度纬度 int distance SiteHelper.GetDistance(star…

WPF属性学习

一.WPF属性系统 CLR属性 .NET中的属性称为CLR属性 转载于:https://www.cnblogs.com/programme-maker/p/10910166.html

Unity3D学习笔记之六创建更多的Prefab

在写完第五篇后,因为不知名的原因,我突然不能够上传100KB以上的图片在博客中了。等了几天还是这样,所以我用PS把图片的分辨率一张张调低,让图片的大小都在100左右,将积攒了四篇的学习笔记一起发上来,也算弥…

四、构建Node Web程序

---恢复内容开始--- 一、HTTP 服务器的基础知识 1、Node如何向开发者呈现HTTP请求 2、一个用“Hello World”做响应的HTTP服务器 它用了默 认的状态码200(表明成功)和默认的响应头 3、读取请求头及设定响应头 Node提供了几个修改HTTP响应头的方法&#x…

datagrid 什么时候结束编辑_2020年中考结束后,什么时候出分?什么时候报志愿?...

导语7月19日下午16:00,2020年北京中考正式落下帷幕。考试结束后,很多家长和考生都会长舒一口气,但北京中考在线团队提醒你,现在还不是放松的时刻,中考结束后,还有成绩查询和填报志愿等重要事件等着你。那么…

Unity3D学习笔记之七创建自己的游戏场景

到现在为止我们已经拥有了比较完备的Prefab,已经可以创建宏大的游戏场景,并以第一人称视角在场景中漫游了。这里给大家做个小的示范,建一个小场景大家在创建场景的时候需要自由发挥,做个尽量大的场景出来。这一系列教程以及素材均…

excel if in函数_【Excel函数】Small+Index+IF 一对N返回

通常情况下,Vlookup和lookup函数只能返回满足条件的第一个,剩余的都不会返回。 这也是其函数的一个弊端之一。 若是按照条件,返回所有满足条件的数据(1->N)的,可是适用组合函数。 Index返回位置&#xf…

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

这一系列教程以及素材均参考自人人素材翻译组出品的翻译教程《Unity游戏引擎的基础入门视频教程》,下载链接附在第二篇学习笔记中。我花了30分钟做了一个中等大小的迷宫场景,不知道大家自己发挥,做的场景大小如何。在完成场景之后&#xff0c…

哪个app最费电_微波炉和烤箱,买哪个划算?

微波炉和烤箱不能说买哪个划算,而是看哪个更适合?我家微波炉和烤箱两个都有,所以这个问题我来回答一下。虽然外形上看起来,微波炉和烤箱似乎没有多大的区别,从功能上看,它们也都是加热,但它们侧…

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

上节为场景中添加了第一块带有碰撞器的石头,本节我们来利用Prefab,将场景细节都添加进去,并且做的更完善。这一系列教程以及素材均参考自人人素材翻译组出品的翻译教程《Unity游戏引擎的基础入门视频教程》,下载链接附在第二篇学习…

wifi名称可以有空格吗_收购公司后可以变更公司名称吗,变更公司名称和股权如何处理?...

【点击文末小程序,免费咨询法律问题】公司收购是指二手设备收购,指向目标公司的二手设备,废旧物资,进而获取目标公司的全部或部分业务,取得对拆除的控制权。那么,收购公司后可以变更公司名称吗,…

震惊的网站,都是干货

分享15个鲜为人知的的小众网站,每一个可以让你打开新世界的大门,让你震惊。 1:仿知网 https://www.cn-ki.net/ 仿知网是一个完全可以代替知网的精品网站;是一个非常强大的论文搜索网站。 首先这个网站的论文检索结果和知网的搜索结…

怎样制作滴滴截图_滴滴老了吗?

作者 / 薛静 来源 / 盒饭财经(ID:daxiongfan)滴滴最近有点忙。6月11日,滴滴地图与公交事业部负责人柴华还在忙于解答消费者对于滴滴司机绕路的质疑,网上就流传出了滴滴司机直播性侵的消息。当晚,滴滴急忙在官方微博中做出回应称已…

Kinect开发笔记之三Kinect开发环境配置详解

0、前言:首先说一下我的开发环境,Visual Studio是2013的,系统是win8的64位版本,SDK是Kinect for windows SDK 1.8版本。虽然前一篇博文费了半天劲,翻译了2.0SDK的新特性,但我还是决定要回退一个版本。其实我…

opencv python 图像缩放/图像平移/图像旋转/仿射变换/透视变换

Geometric Transformations of Images 1图像转换 OpenCV提供了两个转换函数cv2.warpAffine和cv2.warpPerspective,可以使用它们进行各种转换。 cv2.warpAffine采用2x3变换矩阵,而cv2.warpPerspective采用3x3变换矩阵作为输入。 2图像缩放 缩放只是调整图…

.net调用c++方法时如何释放c++中分配的内存_C/C++编程笔记:C语言编程知识要点总结!大一C语言知识点(全)...

一、C语言程序的构成与C、Java相比,C语言其实很简单,但却非常重要。因为它是C、Java的基础。不把C语言基础打扎实,很难成为程序员高手。1、C语言的结构先通过一个简单的例子,把C语言的基础打牢。C语言的结构要掌握以下几点&#x…