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 ...
随机推荐
- Python使用时间戳
1.将字符串的时间转换为时间戳 方法: a = "2013-10-10 23:40:00" 将其转换为时间数组 importtime timeArray = time.strpti ...
- C++封装SQLite实例<三>
前一篇博客中介绍的是怎样依据sqlite3_get_table()函数来获取一张表的内容,就是一股脑的把表中的内容所有存储起来放在一个一维数组中,这其中的规则已经介绍过了.接下来讲的是怎样依据一个SQ ...
- VS2010升级VS2013后,出现没有定义类型“PowerPacks.ShapeContainer”错误解决方法
开发说明: http://msdn.microsoft.com/zh-tw/library/microsoft.visualbasic.powerpacks.aspx Microsoft.Visual ...
- 【Java探索道路安全系列:Java可扩展的安全架构】一间:Java可扩展的安全体系结构开始
笔者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell [ ...
- iOS开发人员必看的精品资料(100个)
目录下载地址:http://down.51cto.com/data/416672 附件预览如下: iOS游戏开发之Unity3D引擎系列 http://down.51cto.com/zt/399 iP ...
- SWT中一些细节的说明
1.shell.pack();函数的效果是将程序打包,使其以合适的大小显示出来,不会太大有很多多余空间,也不会太小导致有些控件无法显示. 2. while(!shell.isDisposed()){ ...
- gustafson,Sun-Ni,Amdahl
gustafson 定律由 John Gustafson首先提出.描述:系统优化某部件所获得的系统性能的改善程度,取决于该部件被使用的频率,或所占总执行时间的比例. Gustafson定理中,加速比与 ...
- POJ 2942 Knights of the Round Table - from lanshui_Yang
Description Being a knight is a very attractive career: searching for the Holy Grail, saving damsels ...
- iOS游戏开发游戏功能之外的东西
对于一个游戏的开发,我们除了完毕游戏的功能之外,还有多少东西我们须要考虑呢? 非常多.也非常烦! 但做过一遍之后下一次就会非常easy. 都有什么东西我们想加入到游戏其中呢? (1)分享功能 (2)评 ...
- 使用Xamarin在Visual Studio中开发Android应用
原文:使用Xamarin在Visual Studio中开发Android应用 本文使用的环境是Windows 8 Visual Studio 2012.2 1.下载Xamarin http://xam ...