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官方视频教程,一看全是纯英文的讲解,没有任何字幕或者 ...
随机推荐
- c# 访问Mysql
下载Connector/Net驱动程序,并安装. 通过MySQLConnection对象来连接数据库,连接MySQL的程序的最前面需要引用MySql.Data.MySqlClient. using M ...
- js向后台传递对象
js: }; $.ajax({ url: "/.../...", type: "POST", async: false, data: JSON.stringif ...
- windows平台下为Nginx反向代理(负载均衡)使用openssl增加HTTPS/SSL功能。
1.准备好perl/openssl ActivePerl-5.12.2.1202-MSWin32-x86-293621.msi openssl-0.9.8k.tar.gz 编译 参考这个:http:/ ...
- MySql(八):MySQL性能调优——Query 的优化
一.理解MySQL的Query Optimizer MySQL Optimizer是一个专门负责优化SELECT 语句的优化器模块,它主要的功能就是通过计算分析系统中收集的各种统计信息,为客户端请求的 ...
- JOB Hunting 总结-----2013-11-5
从9月份开始的找工作大战,告一段落:其实早在10月中旬就已搞定,现在回想起这过去的几个月,很充实,很疲惫,很挫败又很有成就感! 开始找工作,对未来有过很多憧憬,也很迷茫,不知道自己的未来会在 ...
- Bootstrap--常用及实例合集
栅格系统 1. row必须放到container和container-fluid里面 2. 你的内容应当放置于“列(column)”内,并且,只有“列(column)”可以作为行(row ...
- IE8 "开发人员工具" 无法使用,无法显示
经常使用IE8开发工具的开发人员可能会遇到这么一种去情况:按F12时任务栏里出现开发人员工具的任务,但是开发人员工具窗体不弹出,也不出现在IE8里,重装IE88后还是存在此问题. 解决办法其实非常简单 ...
- 【Linux】 awk应用
1 统计机器上处于不同状态的所有TCP连接的个数(TCP连接是有状态连接,包含SYN_RECV, ESTABLISHED, TIME_WAIT, FIN_WAIT0, FIN_WAIT1等多种状态, ...
- HDFS源码分析之数据块Block、副本Replica
我们知道,HDFS中的文件是由数据块Block组成的,并且为了提高容错性,每个数据块Block都会在不同数据节点DataNode上有若干副本Replica.那么,什么是Block?什么又是Replic ...
- Portal实现原理
https://blog.csdn.net/sukyle/article/details/6456930