Unity 官方自带的例子笔记 - Space Shooter
首先
买过一本叫 Unity3D开发的书,开篇第一个例子就是大家经常碰见的打飞机的例子,写完后我觉得不好玩。后来买了一本 Unity 官方例子说明的书,第一个例子也是打飞机,但是写完后发现蛮酷的,首先就是例子自带的音乐很不错,粒子效果也不错,摄像机等各个参数在书中也有明确说明,自己写的时候按照这个调试好的参数来设置游戏就会很舒服。所以就想学一下为什么这样设置参数就可以把游戏调的酷一点,下面整理一下。
参数设置
发布设置
- 选择发布平台。在 Build Settings 中选择 Platform 为 PC 。
- 设置窗口大小。在 PC 平台的 Player Settings 设置宽高为 400 x 600 且取消勾选 Default Is Full Screen 选项。
摄像机
取 Main Camera 作为游戏的摄像机。
- 在 Inspector 面板上设置 Transform 的 Rotation 属性值为 (90, 0, 0) 。为什么要让摄像机的坐标系绕 x 轴旋转 90° 呢?因为这个角度可以从上观察到模型(以飞船模型为例子),如果不旋转摄像机,就得旋转模型,才能得到我们想要的视角。但如果旋转模型的话,在移动模型时就得考虑自身坐标系旋转的影响,会使逻辑复杂,在这种情景下旋转摄像机会是一个简单的解决方案。
- 设置 Position 属性值为 (0, 10, 5)。貌似很多时候都没有让摄像机占用 (0, 0, 0)。
- 选择投影模式为正交投影,Size 为 10 ,Clear Flags 选择 Solid Color ,Background 为黑色。
背景图片
背景采用 3D Object - Quad 作为平面,移除 Mesh Collider 组件,稍后添加材质球用于显示。
- 选择纹理。例子中纹理图片的宽高比是 1024 x 2048 即是 1:2 ,书上建议说为了防止图片被拉伸失真,Quad 的大小也按照这个比例设置。设置 x 轴上的 Scale 大小为 15 让它充满场景,这样 y 轴上的 Scale 就是 30 了。
- 创建材质球。选择纹理为 Unlit/Texture 。
- 设置 Y 值为 -10 。毕竟是背景嘛,显示在最下面。
背景效果
书上说的好啊,不能让背景死气沉沉。这里采用粒子效果实现,把粒子效果预先做成了 prefab 。之前碰见的一个例子是采用 UV 动画实现,但还是觉得 prefab 方便些。
脚本
游戏对象的生命周期。
- 飞船发射的子弹的周期。书上的实现方式虽然类似但是我之前没有用过还是记录一下。游戏中心区域的位置就是摄像机的位置,由上知摄像机的坐标是 (0, 10, 5) 因此 xz 平面的中心位置是 (0, 5) 。创建一个 Cube 作为游戏区域,超出这个区域就是超过了边界,由于 Cube 不需要显示移除它的 Mesh Renderer 组件。设置它的坐标为 (0, 0, 5) ,调整 Scale 为 (15, 1, 20) 使它覆盖背景。这样 Cube 就是我们的游戏区域。注意飞船,子弹等 y 轴坐标也是 0 ,这样它们也才能同处一层做碰撞检测。为 Cube 添加 Box Collider 并设置为触发器。其他物体与它碰撞时,处理 OnTriggerExit 函数便知道 other 已超出了边界,就可以销毁了。
爆炸特效
- 爆炸特效的周期。特效也是预先做成了 prefab 。特效播放完后就没有作用了(暂不考虑缓冲池)。书上直接调用 GameObject.Destroy 函数延迟 2 秒销毁特效对象。
- 爆炸的声音。爆炸时想发出声音,声音是在特效的 prefab 上添加的,并设置初始化就播放,这样创建好特效 GameObject 时,声音也就播放了。
特殊的移动
- 小行星的随机旋转效果。通过 GetComponent().angularVelocity = Random.insideUnitSphere * 10; 实现。
- 特殊小行星的曲线移动。确实游戏中一些敌人曲线移动更有意思。貌似客户端经常需要实现曲线移动的效果。这个先标记一下。
Unity 官方自带的例子笔记 - Space Shooter的更多相关文章
- 对《[Unity官方实例教程 秘密行动] Unity官方教程《秘密行动》(十二) 角色移动》的一些笔记和个人补充,解决角色在地形上移动时穿透问题。
这里素材全是网上找的. 教程看这里: [Unity官方实例教程 秘密行动] Unity官方教程<秘密行动>(九) 角色初始设定 一.模型设置: 1.首先设置模型的动作无限循环. 不设置的话 ...
- 源于《Unity官方实例教程 “Space Shooter”》思路分析及相应扩展
教程来源于:Unity官方实例教程 Space Shooter(一)-(五) http://www.jianshu.com/p/8cc3a2109d3b 一.经验总结 教程中步骤清晰,并且 ...
- [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之材质了解Materials
[我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之材质了解Materials 既上一篇分享了中文字幕的灯光介绍Lights后,本篇分享一下第3个已完工 ...
- unity的自带特性
2016/9/24补充: unity官方有一篇文章对菜单扩展讲的不错 https://unity3d.com/cn/learn/tutorials/topics/interface-essential ...
- 使用AVPro Video在Unity中播放开场视频(CG)笔记
游戏中的开场CG(播放视频),采用的插件为AVPro Video1.x(和W的版本一致),Unity版本为2018.4.0f1 Asset Store:AVPro Video - Core Andro ...
- [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之纹理Textures
[我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之纹理Textures 本篇分享一下第6个已完工的视频,即<beginner Graphics ...
- [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之网格Meshes
[我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之网格Meshes 本篇分享一下第5个已完工的视频,即<beginner Graphics – ...
- [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之灯光介绍Lights
[我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之灯光介绍Lights 既上一篇分享了中文字幕的摄像机介绍Cameras后,本篇分享一下第2个已完工的 ...
- [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之摄像机介绍Cameras
[我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之摄像机介绍Cameras 最近得到一些Unity官方视频教程,一看全是纯英文的讲解,没有任何字幕或者 ...
随机推荐
- 【转载】viewState详解
作者:Infinities Loop 概述 ViewState是一个被误解很深的动物了.我希望通过此文章来澄清人们对 ViewState的一些错误认识.为了达到这个目的,我决定从头到尾详细的描述一下整 ...
- GitHub上编程语言流行度分析
GitHub已然是全球最流行的开源项目托管平台,项目数量眼下已经达到了千万级别.Adereth在Counting Stars on GitHub一文提供了一个很有意思的思路,那就是籍GitHub用户通 ...
- neural network and deep learning笔记(1)
neural network and deep learning 这本书看了陆陆续续看了好几遍了,但每次都会有不一样的收获. DL领域的paper日新月异.每天都会有非常多新的idea出来,我想.深入 ...
- 关于海康视频采集卡的简介---基于pci的插潮采集卡
vga 640x480 qvga vga的1/4,宽高分别是vga的一半 (1)采集类型 海康威视 DS-2CE16A2P-IT3P 700TVL 1/3" DIS ICR 红外防水筒型摄像 ...
- python 基础 5.0 python类一般形式
一. 类的一般形式 创建类我们一般使用class 关键字来创建一个类,class 后面跟类型名字,可以自定义,最后以冒号结尾,如下所示: #/usr/bin/python #coding=utf- ...
- EasyNVR H5无插件摄像机直播解决方案前端解析之:监控实时直播的四分屏的前端展示
完成运行效果图: 一.四分屏展示样式布局 1.通过html.css等来进行样式排版 根据需求的四分屏的样式:来合理的划分出四个大块,分别用于放置四个播放器: 以四等分结构为例进行前端的排版: html ...
- js 获取地理位置经纬度
1. 加载百度API的核心js,ak表示获取百度地图的开发密钥,免费的需要申请下 <script type="text/javascript" src="http: ...
- Webpack探索【10】--- 懒加载详解
本文主要讲懒加载方面相关内容.
- ajax实时获取下拉数据
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ajax ...
- 【docker】开启remote api访问,并使用TLS加密
背景: docker默认是能使用本地的socket进行管理,这个在集群中使用的时候很不方便,因为很多功能还是需要链接docker服务进行操作,docker默认也可以开启tcp访问,但是这就相当于把整个 ...