教程来源于:Unity官方实例教程 Space Shooter(一)~(五)       http://www.jianshu.com/p/8cc3a2109d3b

一、经验总结

教程中步骤清晰,并且相应代码及代码思路也给出,一步步跟着走下来的话并不存在困难。对unity新手来讲,可以学到不少的东西。

1.添加GameObject存在两个标准步骤(良好习惯)

重新命名及重置Transforms

Transforms可以理解为该GameObject的位置相关参数

position为位置参数,rotation为旋转参数,scale为规模参数;重置最方便的方法便是单机右上角的小齿轮并选择reset便可得到如图数据,也就是将该GameObject重置到原点,是个良好的习惯。

2.某些模型的刚体与模型碰撞冲突问题

在添加飞船的刚体及模型碰撞后出现错误“凹多边形的mesh collider不能跟rigidbody同时启用”,经检查发现mesh collider中mesh选项中选择了飞船本身的模型,而本身的模型为凹多边形,导致不能和刚体rigidbody同时启用,教程中选择将mesh模型替换为预先加工好的模型以解决此问题

3.GameObject中主物体及子物体设置

在Hierarchy中编辑拖拽GameObject主要存在三种情况,创建主物体、成为某主物体的子物体、加入某物体inspector中参与设置。而子物体会跟随主物体进行移动、变更属性或经由脚本统一调用。如果主、子物体设置不清晰会造成很大的困难:如飞机本体player及引擎动画效果engines_player不设置为主、子物体的话,就不会同步移动,非常尴尬。

4.防止素材图片比例失调的方法

在添加图片素材后,如果按照游戏的相应要求肆意调节,则会导致图片比例失调,非常难看。而有一简单方法可以极大缓解这一情况,那就是在设置游戏内图片大小时,保留原素材图片的比例系数。如原图片的尺寸为1024x2048,那么在游戏中设置的时候只要保证x参数为y的一半,那么图片就不会发现失调或比例失真的情况了。

5.prefab的制作以及调用

制作好的GameObject可以加入prefab中,直接拖入即可制作完成,保留该GameObject的所有参数。而调用的时候只需在要用的地方直接选择就可以了;但要注意的是,在prefab修改了GameObject的相关参数将会对所有在prefab中调用了该物体的属性参数进行更改!

6.为防止游戏负担过大需要做相应的“回收”工作

在游戏的运行过程中,会由代码需要产生出越来越的且无法自我消除的GameObject,在space shooter中如爆炸的效果、飞出去的子弹等,这些GameObject在不干预的情况下会随着游戏时间越来越多,最终加大游戏负担,导致游戏卡死,因此需要编写相应代码将不断创建的GameObject发挥完作用后将其删除掉。

using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class DestroyByBoundary : MonoBehaviour {
void OnTriggerExit(Collider other) {
Destroy (other.gameObject);
} }

7.物体的tag设置及代码调用

tag就是给一个物体贴上一个标签,本身就是一串代码,一些gameobject会自带其tag标签,而通常情况下我们需要对gameobject设置tag,方便寻找,而在代码中调用的时候,tag也十分重要。tag是一个关键的工具,目前我只学到了它的用途之一:“就是是用来给gameobject贴标签,方便找”。

二、教程疑问

教程中space shooter中设置的发布的平台为wed player,而我的unity中并没有该发布平台选项。有可能是我在安装的时候没有选择安装web player的发布平台,但讯问同样使用unity的同学得知,也可能是unity新版将web player平台取消了。这一点还待验证。

三、额外扩展

教程中给出了飞机的移动、子弹的发射、陨石随机连续生成及分数纪录和游戏结束的相关制作。而我们知道作为一个太空射击类游戏,该教程还留白了许多地方,特别是asset store中下载的素材中还有许多模型并未使用,因为我进行了相应的扩展。

1.添加另外两种陨石

在一种随机陨石的基础上,利用代码及模型创建另外两种陨石进入游戏。其模型大小、刷新数量及间隔时间与第一种陨石完全不同,可以有效增加游戏的乐趣及玩家游戏难度。

2.添加敌机

添加敌机进入游戏,敌机由上至下的移动速度将比陨石缓慢很多,并且会不断发射子弹干扰玩家;而在后期,敌机将可以搭载具有一定移动能力的ai,增加游戏的深度。

3.增加副武器的设定

将player的战机除了鼠标左键发射弹药外,添加右键副武器的设定,可发射具有追踪能力的导弹或大面积的散弹,可以增强玩家战机的性能,提高游戏的乐趣。

源于《Unity官方实例教程 “Space Shooter”》思路分析及相应扩展的更多相关文章

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

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

  2. Unity官方实例教程 Roll-a-Ball

    与unity的transform组件相处的挺久了,最近项目不太忙,决定好好打下unity的基础.那么从Roll-a-Ball这个简单游戏开始吧! 1.先创建一个球体游戏对象,改名为Player,tra ...

  3. Unity-2017.3官方实例教程Space-Shooter(一)

    由于初学Unity,写下此文作为笔记,文中难免会有疏漏,不当之处还望指正. Unity-2017.3官方实例教程Space-Shooter(二) 章节列表: 一.从Asset Store中下载资源并导 ...

  4. Unity-2017.3官方实例教程Space-Shooter(二)

    由于初学Unity,写下此文作为笔记,文中难免会有疏漏,不当之处还望指正. Unity-2017.3官方实例教程Space-Shooter(一) 章节列表: 一.创建小行星Prefab 二.创建敌机和 ...

  5. Unity-2017.2官方实例教程Roll-a-ball(二)

    声明: 本文系转载,由于Unity版本不同,文中有一些小的改动,原文地址:http://www.jianshu.com/p/97b630a23234 上一节Unity-2017.2官方实例教程Roll ...

  6. Unity-2017.2官方实例教程Roll-a-ball(一)

    声明: 本文系转载,由于Unity版本不同,文中有一些小的改动,原文地址:http://www.jianshu.com/p/6e4b0435e30e Unity-2017.2官方实例教程Roll-a- ...

  7. UML实例教程 解析UML建模分析与设计

    UML统一建模语言在软件开发过程中非常实用,UMl建模的分析与设计你是否熟悉,这里就通过实例向大家介绍,希望通过本文的学习,你对UML建模的分析与设计方法有一定的了解. 本节向大家介绍一下图书管理系统 ...

  8. Unity 官方自带的例子笔记 - Space Shooter

    首先 买过一本叫 Unity3D开发的书,开篇第一个例子就是大家经常碰见的打飞机的例子,写完后我觉得不好玩.后来买了一本 Unity 官方例子说明的书,第一个例子也是打飞机,但是写完后发现蛮酷的,首先 ...

  9. 分享本年度最佳的15个 Photoshop 实例教程

    毫无疑问,Photoshop 是任何其类型的设计相关工作的最佳工具.有这么多东西,你可以用它来设计,发挥你的想象力,一切皆有可能. 现在,几乎所有的封面图像都会用 Photoshop 来修饰. 您可能 ...

随机推荐

  1. TIME_WAIT问题总结

         最近用http_load做压测,跑出来一大串"Cannot assign requested address "的错误,查了一下,是TIME_WAIT过多导致的.因为短时 ...

  2. (30)批处理文件.bat

    批处理文件(bat) 简单的说,批处理的作用就是自动的连续执行多条命令 .编写bat处理文件可以使用记事本的方式: 常见批处理文件的命令: echo 表示显示此命令后的字符 tiltle 设置窗口的标 ...

  3. python全栈开发第10天-正则表达式

    正则表达式 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表通常被用来检索.替换那些符合某个模式 ...

  4. 纪念一下java学习之第一个get请求。

    环境,变量及工具: 1.java jdk1.8.X 2.tomcat 8.5.11 3. 环境变量: CATALINA_HOME: tomcat安装地址   JAVA_HOME:  JDK安装地址   ...

  5. 实用 .htaccess 用法大全

    这里收集的是各种实用的 .htaccess 代码片段,你能想到的用法几乎全在这里. 免责声明: 虽然将这些代码片段直接拷贝到你的 .htaccess 文件里,绝大多数情况下都是好用的,但也有极个别情况 ...

  6. Java 学习文章汇总

    目前JAVA可以说是产业界和学术界最热门的语言,许多人都很急切想把JAVA学好. 但学习是需要步骤的,除非像电影中演的那样,能够把需要的专业技巧下载到脑海:主角只花了几秒下载资料,就马上具备飞行员的技 ...

  7. build.gradle代码

    Android Studio 这么强大的工具,就算我们不懂 gradle, groovy, 也照样能借助AS对 Android 项目进行编译.调试.运行.打包等操作.build.gradle 这个文件 ...

  8. Android Weekly Notes Issue #250

    Android Weekly Issue #250 March 26th, 2017 Android Weekly Issue #250. 本期内容: 好几篇关于Android O预览版的文章; JU ...

  9. sass.scss简单入门

    最近研究了一下sass和scss,清晰结构化,在某些地方的确强大,所以写了一篇入门教程,大概15分钟左右就能明白基本原理 什么是sass(css预处理器) Sass官网上是这样描述sass的,sass ...

  10. C#中如何给PDF添加可见的数字签名

    数字签名广泛用于保护PDF文档,可见数字签名在日常生活中是相当重要的.在这篇文章中我将与大家分享如何给PDF文件添加可见的数字签名. 首先我下载了一个由E-iceblue公司开发的免费版的PDF组件- ...