Unity 二战中加飞机
一个简短的引论:
谢意:
本申请中使用《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 二战中加飞机的更多相关文章
- Dll的编写 在unity中加载
1. 在VS中新建Dll项目 2.在头文件中对函数进行声明 extern "C" int _declspec(dllexport) testunity(); 3.在源文件中写函数体 ...
- i3D的一篇Unity教程中的笔记
原地址:http://blog.sina.com.cn/s/blog_72b936d80100wwej.html 以下是i3D的一篇Unity教程中的笔记. i3D的这篇教程是[i3D.Next-Ge ...
- Unity 3D中的内存管理
本文欢迎转载,但烦请保留此行出处信息:http://www.onevcat.com/2012/11/memory-in-unity3d/ Unity3D在内存占用上一直被人诟病,特别是对于面向移动设备 ...
- .net core中加载lua脚本的类库: MoonSharp
前言 MoonSharp是一个支持C#调用lua脚本的类库,支持.net, .net core, mono, unity,因此在.net core中也能够使用,而且加载和调用lua也很方便简单: 官网 ...
- 在Unity 3D中加入Image图片
在Unity 3D中加入Image图片,我在刚开始是加不进去的,为什么呢?因为没有图片,图如下: 原因就是我们没有把图片设置为Script,图片的格式还是默认的那个,这只能作为贴图使用.我们将图片进行 ...
- Unity优化方向——优化Unity游戏中的垃圾回收(译)
介绍 当我们的游戏运行时,它使用内存来存储数据.当不再需要该数据时,存储该数据的内存将被释放,以便可以重用.垃圾是用来存储数据但不再使用的内存的术语.垃圾回收是该内存再次可用以进行重用的进程的名称. ...
- UNITY 多SCENE加载与编辑
Unity内部场景的加载分为两步: Loading.是指从文件.内存(主要是Streamed scene AssetBundle)中加载Scene的内容,创建并读取所有相关的Game objects. ...
- 升级MAC OS到10.13, 10.14系统后UNITY工程无法加载资源的解决办法
升级MAC OS到10.13, 10.14系统后,出现UNITY工程无法加载资源的情况: Unity项目中Asset目录显示为空! 解决办法一: 打开Launchpad中的磁盘工具 (也就是实用工具下 ...
- iOS Interface Builder:在.xib文件中加载另一个.xib文件
在开发中,经常会用到一个需要重复使用的模块,比如好友列表中每个用户的展示或每条动态,这些都是相同的模版,这样我们就可以把这个部分提取出来放到一个单独的.xib中.那么提取出的.xib如何在其他.xib ...
随机推荐
- build setting
A build setting is a variable that contains information about how a particular aspect of a product’s ...
- 查看mysql一些命令的数据库状态
命令: show processlist; 假设是root帐号,你能看到全部用户的当前连接.假设是其他普通帐号,仅仅能看到自己占用的连接. show processlist;仅仅列出前100条, ...
- CodeIgniter Apacheserver htaccess SEO重写写法
1)支持重写 2)兼容全部APACHE server 3)假设不是文件,请求的结尾不包含反斜杠,自己主动跳转到反斜杠 4)文件名称 .htaccess 5)这个放到nginxserver怎么都不支持重 ...
- 使用SVNkit删除版本库的文件
源网址:http://wiki.svnkit.com/Committing_To_A_Repository Editing Operation: commiting to a repository T ...
- 3DMax的OFusion插件使用问题
使用OFusion将3D max场景导出为Ogre的Mesh是非经常常使用的方法.这里汇总一些问题方便查阅. 1.OFusion获取: http://download.csdn.net/detail/ ...
- hdu4857 逃生 bestcoder round1 A
题目要求要求在满足约束条件的情况下,使小的序号尽力靠前. 坑点就在这里.小的序号尽量靠前并非代表字典序,它要求多种情况时,先使1靠前(可能1仅仅能在第2或第3位 那么就要使它在第2位),其次2,3. ...
- arcgis jsapi 调用google地区服务
做地理信息系统(GIS)项目,除了实现功能用户体验度要好之外,最重要的是地图渲染效果更要好.很多时候苦于数据的完整性和对于配图的审美观,程序猿们都很难配出好看的地图效果.基于上述一般直接调用googl ...
- Android-Universal-Image-Loader学习笔记(一个)
Android-Universal-Image-Loader它是一个开源项目,处理图像加载和缓存.闲暇的时候,读一些源.特别记录. 所述图像文件(磁盘)高速缓存,我们需要考虑的因素,如以下 1) 定 ...
- 使用VBA将批量的WORD文档转换为PDF
Sub BatchConvertToPDF() Dim destFolderPath As String destFolderPath = GetFolderPath If destFolderPat ...
- STL 源代码分析 算法 stl_algo.h -- merge
本文senlie原版的,转载请保留此地址:http://blog.csdn.net/zhengsenlie merge (应用于有序区间) ------------------------------ ...