首先

买过一本叫 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. 研发团队如何借助Gitlab来做代码review

    代码review是代码质量保障的手段之一,同时开发成员之间代码review也是一种技术交流的方式,虽然会占用一些时间,但对团队而言,总体是个利大于弊的事情.如何借助现有工具在团队内部形成代码revie ...

  2. 开始nodejs+express的学习+实践(1)

    开始nodejs+express的学习+实践(1) 开始nodejs+express的学习+实践(2) 开始nodejs+express的学习+实践(3) 开始nodejs+express的学习+实践 ...

  3. 【Java】事件驱动模型和观察者模式

    你有一件事情,做这件事情的过程包含了许多职责单一的子过程.这样的情况及其常见.当这些子过程有如下特点时,我们应该考虑设计一种合适的框架,让框架来完成一些业务无关的事情,从而使得各个子过程的开发可以专注 ...

  4. 【C/C++】高亮C++中函数的重写——函数名相同?参数列表相同?返回值相同?

    C++的重载给人留下了非常深刻的影响,原因是重载的条件很值得注意:函数名相同,参数列表不相同的两个函数构成重载函数,而无关乎二者的返回值. 但是C++中的函数重写又是另一码事.标准规定:只要函数名相同 ...

  5. JVM中垃圾收集选项

    最初并发垃圾收集被引入的时候,激活并发垃圾收集的命令选项是: -XX:+UseParallelGC 增强的并行收集和Java 6一起发布,通过一个新的命令行选项: -XX:+UseParallelOl ...

  6. php正则表达式匹配img中任意属性的方法

    经常和图片打交道,不得不用到一些提取图片中scr.alt.title.等的属性,这里总结给大家一些常用的,感觉还不错,比较通用! PHP正则表达式匹配img中任意属性PHP 复制代码代码如下: < ...

  7. 目标检测之hog(梯度方向直方图)---hog简介0

    梯度直方图特征(HOG) 是一种对图像局部重叠区域的密集型描述符, 它通过计算局部区域的梯度方向直方图来构成特征.Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功 ...

  8. OpenStack 使用Ceph 配置指导

    概述 Ceph 作为分布式文件系统,不但具有高可靠性.高扩展性.高性能. 也是统一存储系统.支持对象存储.块存储.文件存储,本文介绍怎样使用Ceph 块存储作为OpenStack的Glance.Nov ...

  9. (1)Web 应用是一个状态机,视图与状态是一一对应的。 (2)所有的状态,保存在一个对象里面。

    Redux 入门教程(一):基本用法 - 阮一峰的网络日志 http://www.ruanyifeng.com/blog/2016/09/redux_tutorial_part_one_basic_u ...

  10. Redis之java增删改查

    jedis是java的redis客户端实现,要使用jedis须要加入jedis的maven依赖: <dependency> <groupId>redis.clients< ...