一个简短的引论:

谢意:

本申请中使用《Unity3D\2D移动游戏开发》提供资源。著作权属于作者。感谢作者。基于原始时本申请的二次开发。

要素:

1.增加2s cd的机身旋转,旋转时保持无敌状态,人挡杀人。。

2.增加0,5s cd的跟踪导弹,导弹随机打击目标敌人。

3.加强小飞机AI,小飞机拥有三种飞行模式,直线。sin曲线,以及追踪玩家。以不同概率随机选择飞行模式。

技术要素:

1.对于玩家飞机。採用简单switch-case有限状态机。

2.对于小飞机AI则使用RAIN AI 行为树。

3.书中源程序包升级为unity5.0。并消除了升级出现Mesh trigger bug。

player部分状态机源代码

         void Normal(){
if (Input.GetMouseButton (1)) {
state=PlayerState.Arounding;
}
}
void Shoot(){
m_superRate -= Time.deltaTime;
if (m_superRate <= 0) {
m_superRate=0.5f;
Instantiate (m_srocket, m_transform.position+new Vector3(0.5f,0,0), m_transform.rotation);
Instantiate (m_srocket, m_transform.position+new Vector3(-0.5f,0,0), m_transform.rotation);
} m_rocketRate -= Time.deltaTime;
if (m_rocketRate <= 0) {
m_rocketRate = 0.1f; if (Input.GetKey (KeyCode.Space) || Input.GetMouseButton (0)) {
Instantiate (m_rocket, m_transform.position, m_transform.rotation);
m_audio.PlayOneShot (m_shootClip);
}
}
}
void CoolDown(){
m_around -= Time.deltaTime;
if (m_around <= 0) {
m_around = 1f;
state=PlayerState.Normal;
} }

EnemyAI行为树:

注意事项:

1. plane triangle mesh unity5.0 不支持trigger

2.RAIN AI ai 的body 的transform 是一份复制文件,改动它无法移动游戏对象,能够使用ai.motor.moveto

github地址

https://github.com/RonTang/ShootingGamex/

版权声明:本文博主原创文章,博客,未经同意不得转载。

Unity 二战中加飞机的更多相关文章

  1. Dll的编写 在unity中加载

    1. 在VS中新建Dll项目 2.在头文件中对函数进行声明 extern "C" int _declspec(dllexport) testunity(); 3.在源文件中写函数体 ...

  2. i3D的一篇Unity教程中的笔记

    原地址:http://blog.sina.com.cn/s/blog_72b936d80100wwej.html 以下是i3D的一篇Unity教程中的笔记. i3D的这篇教程是[i3D.Next-Ge ...

  3. Unity 3D中的内存管理

    本文欢迎转载,但烦请保留此行出处信息:http://www.onevcat.com/2012/11/memory-in-unity3d/ Unity3D在内存占用上一直被人诟病,特别是对于面向移动设备 ...

  4. .net core中加载lua脚本的类库: MoonSharp

    前言 MoonSharp是一个支持C#调用lua脚本的类库,支持.net, .net core, mono, unity,因此在.net core中也能够使用,而且加载和调用lua也很方便简单: 官网 ...

  5. 在Unity 3D中加入Image图片

    在Unity 3D中加入Image图片,我在刚开始是加不进去的,为什么呢?因为没有图片,图如下: 原因就是我们没有把图片设置为Script,图片的格式还是默认的那个,这只能作为贴图使用.我们将图片进行 ...

  6. Unity优化方向——优化Unity游戏中的垃圾回收(译)

    介绍 当我们的游戏运行时,它使用内存来存储数据.当不再需要该数据时,存储该数据的内存将被释放,以便可以重用.垃圾是用来存储数据但不再使用的内存的术语.垃圾回收是该内存再次可用以进行重用的进程的名称. ...

  7. UNITY 多SCENE加载与编辑

    Unity内部场景的加载分为两步: Loading.是指从文件.内存(主要是Streamed scene AssetBundle)中加载Scene的内容,创建并读取所有相关的Game objects. ...

  8. 升级MAC OS到10.13, 10.14系统后UNITY工程无法加载资源的解决办法

    升级MAC OS到10.13, 10.14系统后,出现UNITY工程无法加载资源的情况: Unity项目中Asset目录显示为空! 解决办法一: 打开Launchpad中的磁盘工具 (也就是实用工具下 ...

  9. iOS Interface Builder:在.xib文件中加载另一个.xib文件

    在开发中,经常会用到一个需要重复使用的模块,比如好友列表中每个用户的展示或每条动态,这些都是相同的模版,这样我们就可以把这个部分提取出来放到一个单独的.xib中.那么提取出的.xib如何在其他.xib ...

随机推荐

  1. Linux下SVN安装配置全程实录(转)

    一.安装SVN默认安装到/usr/local/bin下面 二.创建仓库 svnadmin create /home/svnrepo /root/svnrepo为所创建仓库的路径,理论上可以是任何目录 ...

  2. OpenStack安装与配置2

    第二部分 OpenStack安装与配置 一.引言   本章内容讲解如何在3台物理机上搭建最小化云平台,这3台机器分为称为Server1.Server2和Client1,之后的各章也是如此.Server ...

  3. pcie inbound、outbound及EP、RC间的互相訪问

    Inbound:PCI域訪问存储器域 Outbound:存储器域訪问PCI域 RC訪问EP: RC存储器域->outbound->RC PCI域->EP PCI域->inbou ...

  4. AIX 中以并发模式挂载vg

    要想以并发模式挂载VG 必须要有/usr/sbin/gsclvmd 这个进程,而些进程是安装HACMP 的必要的文件集bos.clvm.enh,同时gsclvmd 也是由HACMP 启动的,多个节点挂 ...

  5. VS2008--无法找到“XXX.exe”的调试信息,或者调试信息不匹配

    ------解决方案----- 1. 关闭掉Visual Studio 实例. 2. 找到解决方案下的.suo文件并删除之. 3. 重新启动Visual Studio,或者直接双击.sln文件打开 4 ...

  6. Windows phone 8 学习笔记(9) 集成

    原文:Windows phone 8 学习笔记(9) 集成 本节整理了之前并没有提到的Windows phone 8 系统相关集成支持,包括选择器.锁定屏幕的.联系人的访问等.选择器列举了若干内置应用 ...

  7. linux下安装cmake和mysql遇到的问题总结

    首先是在安装cmake的过程中遇到的问题: 1.開始使用yum命令安装时,不知道为什么一直不行,然后就准备wget 来先下载压缩包,再手动编译. 因为网络限制,wget不能下载外网的东西一直显示con ...

  8. lca转RMQ

    这个博客写得好 #include <stdio.h> #include <vector> #include <string.h> using namespace s ...

  9. 元素z-index继承问题

    两同层元素.当中一个的子元素定位与还有一个重叠时,该子元素被覆盖(此时子元素的z-index继承的是其父元素的z-index,不管其z-index多少均被覆盖) <html> <he ...

  10. 用C设计,用C++编码

          昨天晚上看到刘江的blog又补充了好几大段,今天早上又看到云风的人肉trackback,果然还是这种话题引人关注. 云风先是提了一下所谓C++带来的思想包袱(文言文曰“心智包袱”)问题,然 ...