自学Unity笔记 坦克大战项目

来源:互联网 发布:linux help和man 编辑:程序博客网 时间:2024/05/16 11:43

1 创建工程 场景
3D工程
导入素材
导入场景,删除自带直射光,lighting 中 Scene 中的Auto 勾选取消,Ambient Source 改成 color 改一下映射颜色
摄像机中的映射颜色 改一下
摄像机中的Projection改一下Size改一下

2 场景中添加坦克,控制其移动
冒烟效果预制体
Box Collider
Rigidbody
把坦克做成PreFabs
添加脚本控制移动
定义速度
FixedUpdate()中用rigidbody.velocity = transform.forward*v(Vertical)*speed控制移动
锁定一下 x y position 和 x rotation

3 控制坦克的旋转
h(Horizontal)得到水平的值
rigidbody.angularVelocity = transform.up*h*旋转速度

4 修改坦克控制的灵活性(增加坦克的编号)
Edit
Project Setting InputManager修改一下Horizontal和Verital的按键
增加编号区分控制

5 控制坦克子弹的发射
添加碰撞器和刚体
Tank下创建一个空的游戏物体,放在炮口
新建脚本控制
得到空物体的Transform以及子弹的shellPrefabs
按键设置
将子弹预制体实例化到空物体的Transform

6 控制炸弹的飞行和爆炸
飞行速度
得到子弹的刚体组件.velocity = go.transform.forward*shellspeed
在子弹上添加脚本控制爆炸
子弹添加触发器
销毁自身,实例化爆炸特效预制体,
在特效上添加脚本控制特效的销毁

7 控制炸弹对坦克的伤害
坦克身上添加Tag
collider.SendMessage(“TakeDamage”);
新建脚本控制坦克血量
判断是否死亡,(血量减少前先判断一次,如果已经死亡就直接return)
实例化坦克爆炸预制体
销毁自身

8 控制相机视野的跟随
视野设定在两个坦克的正中心
相机上新建脚本
得到两个坦克的transform
offset 相机的位置减去两个坦克的中心位置
相机的transform等于中心位置加上offset
保持Size和两个坦克位置的比例
camera.size =size;
如果有一个Tank被销毁了,就return(游戏结束)

9 添加游戏音效
空游戏物体控制背景声音
坦克爆炸音效
AudioSource.PlayClipAtPoint(音效,位置)
发射子弹的声音
子弹爆炸的声音

10 添加坦克音效
坦克身上添加AUDIO SOURCE组件默认播放IDLE
Movement中控制
if判断如果h,v不等于0则播放移动的音效
else播放Idle

11 添加血条
UI-Slider
修改一下大小,贴图
Fill Background修改成上下左右填充
Canvas设置成world space
public Slider hpSlider;
Slider的Value值的大小是0-1的

12 UI控制
回合数
比分
重玩