网龙暑期训练营第三周:标准资源包的应用与岗哨、打靶任务的开发
第三阶段的任务比较复杂,涉及到了Unity各方面的知识,叶老师也对Unity的各个重要部分进行了详细讲解。本文主要针对视频中提到的各项技术进行总结,并梳理岗哨和打靶案例的开发流程。便于各位复习与参照。
整体内容如下
1.基础知识
1.1 准备工作
1.2 地形设计
1.3 角色控制器
1.4 碰撞检测
1.5 协程
2.岗哨人物开发
3.打靶任务开发
接下来对各部分进行总结。
1.基础知识
1.1 准备工作
导入UnityStandardAssetsSetup和book_asset资源包。其中UnityStandardAssetsSetup包含第一/第三人称控制器、环境要素等,使用各自版本自带的标准资源包即可,book_asset包含荒岛求生的所有资源,提供岗哨、打靶等功能各项资源。
1.2 地形设计
地形设计(Terrain)主要功能为下图
Raise/Low Height:按住左键提升,shift+左键降低
Paint Hejght: 按住shift保存某一点高度,在另一个区域按住左键即可将对应地形更改为保存的高度
Smooth Height: 用于边缘的平滑操作
Paint Texture: 用于绘制贴图,例如将草地贴图导入,以更改地面的贴图效果
Place Tree: 批量种树
Paint Detail: 与Paint Texture类似,案例中用来批量种草
Setting:地形编辑的一些设置选项
更多详细的功能可以参照:https://www.jianshu.com/p/dbc2de5e3009 了解了这些功能,就可以制作出一个小岛的demo了。
1.3 角色控制器
角色控制器负责控制人物的行动,由标准资源包自带,导入即可。控制器下挂载的FirstPersonController脚本控制具体的行为,代码是由Unity官方提供的,十分简练,值得深入学习。
对FirstPersonController的详细解析可以参照:https://blog.csdn.net/q764424567/article/details/78501613
1.4 碰撞检测
三种碰撞检测的方法
- 碰撞检测(两者collider是否交互)
- 触发碰撞检测(别的对象是否进入自己的collider范围)
- 射线追踪(发射射线检测发生碰撞的对象)
其中前两种在第一阶段的课程中有提到,可以参照一阶段视频。
重点说明下射线追踪,适用于即时反馈的物体,例如通过点击地面控制人物朝向与行走,或是高速运动的子弹物体。都可以运用射线检测功能。
射线检测的基础知识可以参照:https://blog.csdn.net/gary_888/article/details/51439401
进阶内容:https://www.jianshu.com/p/d6d3d7bf5151
1.5 协程
协程是游戏开发中一个重要的工具,它在不影响程序正常运行的同时开启一个协同程序。协程有点像线程,但却不是线程.因为协程仍然是在主线程中执行,且在使用时不用考虑同步与锁的问题,协程只是控制代码等到特定的时机后再执行后续步骤。
协程的应用很广泛,在这次的岗哨案例中,就通过开启协程控制岗哨大门的延迟关闭。叶老师的视频中讲解了协程了各种使用方法,建议详细学习。
协程的具体介绍可以参照:http://dsqiu.iteye.com/blog/2029701
2.岗哨任务
岗哨任务是三阶段第一个作业,具体的代码参照视频,这里给出基本的脚本分析和逻辑。
岗哨任务由3个主要的脚本实现
- PowerCell(监听电池是否与角色碰撞并传递信息给Inventory,挂载在电池上)
- DoorCollision(监听岗哨大门的碰撞信息并触发相应动画或提示,挂载在岗哨的门上)
- Inventory(监听收集到的电池数量信息并触发对应事件,挂载在主角上)
逻辑如下:
1.PowerCell是挂载在电池下的脚本,当主角碰撞到电池时,触发Trigger事件,将Inventory中的电池计数+1。
2.Inventory脚本通过电池技术更新发电机电量、岗哨灯光以及UI界面的电池信息。
3.当主角与门发生碰撞时,获取Inventory中的电池计数,若满足,触发开门效果。否则显示提示信息。
3.打靶任务
打靶任务较岗哨任务稍难,脚本信息如下
- CoconutThrower(控制椰子的发射,在第一人称下新建一个子物体,并挂载在子物体上)
- ThrowTrigger(控制CoconutThrower中的发射标志位,挂载在靶房的地毯“mat”上)
- TargetCollision(判断标靶是否与椰子发生碰撞并做出对应动作,挂载在标靶子物体的“target”上)
- CoconutWin(监听被击倒的椰子数,若满足条件,则创建一个电池,挂载在靶房上)
逻辑如下:
1.当靶房的地毯mat检测到主角发生的碰撞时,将CoconutThrower中的标志位置为true,此时点击鼠标右键即可执行发射。
2.当标靶检测到椰子的碰撞时,触发“down”的动画,将CoconutWin中被击倒的椰子数+1,同时开启协程计时,3秒后标靶执行“up”动画。
3.若被击倒的标靶数大于3个,将靶房中原有的电池物体删除,并创建一个新的电池。
网龙暑期训练营第三周:标准资源包的应用与岗哨、打靶任务的开发相关推荐
- 网龙暑期训练营第二周:Unity介绍、调试以及小游戏demo开发
本文梳理第二周训练营视频中所提到的知识点,便于大家复习巩固,也便于自己日后查阅.视频内容主要分为三个部分: 1.Unity功能介绍 2.玩泥巴游戏开发 3.Unity调试操作 1.Unity功能界面 ...
- Unity找不到标准资源包standard assets的真正解决方案
Unity小白一枚,刚刚开始学习.遇到一些问题,感觉在网上搜索到的内容没有帮助,所以写出来希望能帮到大家. 0.问题描述 很多Unity的入门教程,都提到了标准资源包standard assets,长 ...
- unity水特效与标准资源包的下载导入
由于本个实例需要使用unity的标准资源包 一: 方法一: 1.进入unity官网 https://unity.cn/ 2.点击页面的Beta版本 3.找到对应自己版本下载即可 方法二: 在unity ...
- unity 标准资源包中的围绕旋转摄像机
我们经常会用到相机围绕某个物体旋转的功能,但是自己写一个却通常会发现相机的高度飘忽不定,这是因为相机在围绕目标公转时,还要自转以看向目标,且公转时要同时旋转两个轴,这里不好处理,好在优美缔为我们准备了 ...
- Unity import package不显示标准资源包的问题(只有Custom Packag)
Unity import package不显示标准资源包的问题,如下图: 办法:在asset store里搜索Standard Assets选择导入即可,如下图: 嘿嘿!有用的话点个赞呗!
- JAVA训练营第三周和第四周学习总结
这两周我学习了数组.方法.类和对象. 难度在以肉眼可见的速度递增,学习的脚步越来越慢.这对我来说还好,就是还想多多的实战一下. 参加这个训练营已经整整一个月,我切身体会到孔子说的那句话:逝者如斯夫,不 ...
- [职场开放日活动]网龙嘉宾回答网友提问-合集
5月6日,CSDN职场论坛特邀请国内知名网游公司--网龙招聘经理Gina做客"职场开放日",与各位网友进行职场和网游相关话题的交流. CSDN职场论坛"职场开放日&quo ...
- python中json模块_Python的标准模块包json的实例用法
Python的标准模块包json详解 引言 对于做web开发的人来说,json文本必须要熟知与熟练使用的.大部分网站的API接口调用返回的数据,就是json格式的.如果看json对象所包含的内容,相信 ...
- Unity 标准资源下载
标准资源,有时候还是不可或缺的 不错,Unity的标准资源,虽然简单,但是有时候你可能还是需要它的 新的改变 Unity官方直Unity2018.2.0及之后,就不再默认提供标准资源(包含人称控制器. ...
最新文章
- docker安装elasticsearch和kibana
- vs2019编写Linux c/c++项目
- python中的装饰器和抽象类
- 14日晚8点直播丨 经典知识库:性能优化那些事
- 用python批量下载网络图片_python批量下载图片的三种方法
- 数据平台-第一章-数据质量提升
- Centos7安装Nginx实战
- Debian 9 + Windows 10 双系统安装体验
- mysql一般要配置的几个小节及选项是_MySQL - 必知必会(下)
- 【神器】截图+贴图工具 Snipaste
- uva 10105 Polynomial coefficients
- word2016毕业论文不同章节设置不同页眉方法
- 5G LTE窄带物联网(NB-IoT)7
- CC00056.bigdatajava——|Java分支结构.V06|——|Java.v06|ifelseifelse.v02|个人所得税计算方式一|
- dubbo注册服务IP解析异常及IP解析源码分析
- AOP思想实现集中式登录,用户行为统计框架
- 【项目整理】一个好看的导航栏
- 移动通信电磁辐射(转)
- ​Web前端剪切板文本分享到文件发送
- 计算机考试93781试题及答案,黄南州中小学教师2016年招聘笔试加分人员名单(3 )...