首先

买过一本叫 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的更多相关文章

  1. 对《[Unity官方实例教程 秘密行动] Unity官方教程《秘密行动》(十二) 角色移动》的一些笔记和个人补充,解决角色在地形上移动时穿透问题。

    这里素材全是网上找的. 教程看这里: [Unity官方实例教程 秘密行动] Unity官方教程<秘密行动>(九) 角色初始设定 一.模型设置: 1.首先设置模型的动作无限循环. 不设置的话 ...

  2. 源于《Unity官方实例教程 “Space Shooter”》思路分析及相应扩展

    教程来源于:Unity官方实例教程 Space Shooter(一)-(五)       http://www.jianshu.com/p/8cc3a2109d3b 一.经验总结 教程中步骤清晰,并且 ...

  3. [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之材质了解Materials

    [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之材质了解Materials 既上一篇分享了中文字幕的灯光介绍Lights后,本篇分享一下第3个已完工 ...

  4. unity的自带特性

    2016/9/24补充: unity官方有一篇文章对菜单扩展讲的不错 https://unity3d.com/cn/learn/tutorials/topics/interface-essential ...

  5. 使用AVPro Video在Unity中播放开场视频(CG)笔记

    游戏中的开场CG(播放视频),采用的插件为AVPro Video1.x(和W的版本一致),Unity版本为2018.4.0f1 Asset Store:AVPro Video - Core Andro ...

  6. [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之纹理Textures

    [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之纹理Textures 本篇分享一下第6个已完工的视频,即<beginner Graphics ...

  7. [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之网格Meshes

    [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之网格Meshes 本篇分享一下第5个已完工的视频,即<beginner Graphics – ...

  8. [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之灯光介绍Lights

    [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之灯光介绍Lights 既上一篇分享了中文字幕的摄像机介绍Cameras后,本篇分享一下第2个已完工的 ...

  9. [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之摄像机介绍Cameras

    [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之摄像机介绍Cameras 最近得到一些Unity官方视频教程,一看全是纯英文的讲解,没有任何字幕或者 ...

随机推荐

  1. [魅族Degao]Androidclient性能优化

    本文由魅族科技有限公司资深Android开发project师degao(嵌入式企鹅圈原创团队成员)撰写,是degao在嵌入式企鹅圈发表的第一篇原创文章,毫无保留地总结分享其在领导魅族多个项目开发中的A ...

  2. MySQL数据库的知识总结

    1.Mysql数据库存储引擎 概念:存储引擎其实就是如何实现存储数据,如何为存储的数据建立索引以及如何更新,查询数据等技术实现的方法.MYSQL中的数据用各种不同的技术存储在文件 (内存)中,这些技术 ...

  3. C#高级编程---暂停计划

    学了两个半月的C#高级编程这本书,看到了第三部分,说实话,我有点怂了,我认怂,临时先放一下,博客暂停,由于我的水平确实不会了,在写下去也是自欺欺人,我决定先研究研究我比較喜欢的脚本语言JS,開始写的, ...

  4. php遍历对象属性,可以使用foreach,直接打印出属性

    依然遵循私有属性不可以在外访问,(不能打印出来) 但可以在内部访问这个原则.

  5. python爬虫获取百度图片(没有精华,只为娱乐)

    python3.7,爬虫技术,获取百度图片资源,msg为查询内容,cnt为查询的页数,大家快点来爬起来.注:现在只能爬取到百度的小图片,以后有大图片的方法,我会陆续发贴. #!/usr/bin/env ...

  6. Linux QtCreator 设置mingw编译器生成windows程序

    Qt跨平台,那必须在Linux平台编译一个可以在windows下运行的Qt程序才行,当然还得和QtCreator环境弄在一起才行 工作环境:Centos 7 yum install qt5-qt* m ...

  7. 设置jvm运行内存

    :1.右击项目—Bulid Path—Configure Build Path—Libraries,找到JRE System Libraary[Sun JDK 1.6.0_13],选中JRE Syst ...

  8. js将字符串转变成数字

    方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有 ...

  9. Docker入门系列2 安装

    可以从 Docker 社区直接下载可用的模版或镜像. Docker容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多. 其次,Docker对系统资源的利用率很高,一台主机上可以同时运行数千个Do ...

  10. NERO8.0刻录系统光盘

    正常启动NREO,点击NERO 8.0左下角图标(启动NERO应用程序和工具),选NERO Express Essentials,在左边的几个选项中选择“映像.项目.复制”,右边选“光盘映像或保存的项 ...