Unity 飞机大战增强版
2015-06-06 16:35
1006 查看
简介:
感谢:本应用使用《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 不支持trigger2.RAIN AI ai 的body 的transform 是一份拷贝文件,修改它无法移动游戏对象,可以使用ai.motor.moveto
github地址
https://github.com/RonTang/ShootingGamex/相关文章推荐
- 【经验】Unity读取Excel数据并绑定到Prefab上
- Unity3D帮助文档跳转缓慢----Vim编辑器批量替换文件内容
- 【Unity3D】自动寻路(Nav Mesh Agent组件)
- [Unity实战]框选效果
- unity3D 旋转3D物体
- Unity3D添加天空盒
- [Unity基础]GL图像库
- [UnityShader]使用Unity Render Textures实现画面特效——建立画面特效脚本系统
- Unity3D教程:动画融合、动画层、动画混合、附加动画、程序动画、动画重放和取样
- unity手游开发--如何得到当前物体播放的动画
- Unity3D 项目用 git 做版本控制
- Unity5 如何做资源管理和增量更新
- InvokeRepeating("PlaySound",2.0f,0.5f) 2秒后每隔0.5秒调用
- [Unity3D]自己动手重制坦克舰队ArmadaTank
- Unity3d读取CSV中的文本到Rich Text中换行符不识别的问题
- 如何将Unity工程打包成apk
- Unity 5.0 IL2CPP
- Unity3D摄像机跟随人物
- Unity3d NGUI的drawcall,UISprite与UITexture
- [Unity3D]降低向Shader中传值的开销