请选择 进入手机版 | 继续访问电脑版
提问

#楼主# 2019-5-13

跳转到指定楼层
我们设置好了坦克的前后移动和旋转,接下就要给坦克添加子弹,先在模型库里面找到炮弹的模型:
1.jpg
然后拖到场景中,放在坦克炮筒前面:
2.jpg
紧接着给它添加碰撞器和刚体组件:
3.jpg
然后把它做成一个预设体拖到预设体的文件夹里面,并在场景中删除它:
4.jpg
接下来给坦克添加一个空的游戏对象,并命名为FirePosition,把FirePosition放在炮筒前面:
5.jpg
再给坦克添加一个脚本,命名为TankAttack,打开它,输入代码:
6.jpg
然后把预设体1拖到2的位置:
7.jpg
这个时候,我们运行场景,就可以使用键盘的空格键发射出炮弹了:
8.jpg
但是炮弹不是发射的,仅仅只是出现在坦克前面,没有往前打的力。后面我们会继续完善,这里的话,我们先把我们对坦克做出修改之后的预设体进行保存一下,让所有的预设体都有这个坦克的属性,也就是把预设体都应用一下这个修改:
9.jpg
点击一下这个Apply all就可以了。
接下来我们就来控制子弹的飞行和爆炸,输入代码:
10.jpg
这个时候,我们运行场景,就可以把炮弹发射出去了:
11.jpg
那么问题来了,炮弹打出去并没有爆炸啊!我们这是坦克发射出去的是炮弹,不是石块,炮弹是会爆炸的,所以我们还需要继续完善。当然我们需要把坦克的预设体再次运用一下修改。
我们打开一下炮弹的预设体,给它添加一个脚本,命名为Shell:
12.jpg
然后首先让炮弹销毁,因为炮弹爆炸之后是会自动销毁的:
13.jpg
炮弹的爆炸效果在资源包里面做了一个粒子预设体:
14.jpg
我们需要勾选上Play On Awake。
然后通过脚本,我们来实例化这粒子特效:
15.jpg
这里要注意的是,代码里面每一个标点符号都不能错的。
然后给Shell赋值,把1直接拖到2的位置,并且把Is Trigger打勾:
16.jpg
这个时候我们运行项目的时候,就可以发现炮弹打出去之后,碰撞到东西或者地面的时候,会有爆炸效果并且自动销毁了:
17.jpg
但是有一个问题,特效没有自动销毁,全部都还在Hierarchy视图里面
18.jpg
因此我们要给特效添加一个脚本让它自动销毁:
19.jpg
输入代码:
20.jpg
把特效销毁的时间设置为1.5秒:
21.jpg
这个时候再运行场景,炮弹的粒子特效也会自动销毁了:
22.jpg
首先我们给坦克的预设体添加一个坦克的类:
23.jpg
把这个类命名为Tank:
24.jpg
然后把坦克的预设体的类设置为Tank:
25.jpg
然后给坦克添加一个脚本用来记录和控制坦克的血量:
26.jpg
打开这个脚本,并输入代码:
27.jpg
然后把1拖到2的位置:
28.jpg
这个时候我们需要场景里面有两个坦克才可以进行对战测试血量是否忽减少,所以我们复制坦克,并且重命名,同时,为了使两个坦克的控制操作方式不一样,我们把坦克2的数字改成2:
29.jpg
同时要让坦克2的炮弹发射设置为小键盘的Enter键,先找到Fire Key:
30.jpg
然后设置为Keypad Enter:
31.jpg
这个时候Tank1就是用空格键开火,Tank2就是使用小键盘的Enter开火了。我们运行场景,让一辆坦克去轰炸另一辆坦克,看看坦克的血量是否会减少:
32.jpg
很明显,血量是在不断的减少的。
是否能够把另一辆坦克轰炸掉,这里因为坦克爆炸时间太短了,没办法截图,但是可以确定的是坦克没有血量的时候是会爆炸的。但是大家都会发现,两辆坦克的颜色是一样的,不太好识别,所以我们要进行区分。所以,我们需要把Tank2的这四个子对象的材质全部替换成红色的:
33.jpg
替换之后,两辆坦克的颜色就不一样了,一辆红色,一辆绿色:
34.jpg
接下来就要设置相机的跟随,也就是视野的跟随,所以我们要让相机一直处于两辆坦克的中间,并且随着距离的增大或者减少,相机自动进行缩小或者放大,以便两辆坦克都在视野里面,那我们就需要给相机添加一个名为FollowTarget的脚本,并输入代码:
35.jpg
然后把两个坦克放到相应的位置:
36.jpg
这个时候运行游戏,相机就会一直跟随两个坦克,永远处于两个坦克中间位置,但此时比例不会进行缩放,特别是两辆坦克位置很近的时候,相机却没有放大,因此我们还需要进行调整,实现相机的缩放:
38.jpg
这个时候我们运行场景,并且移动坦克,可以发现随着坦克的移动相机也会进行缩放了:
39.jpg
40.jpg
这里说一下当我们炸毁其中一辆坦克的时候,相机跟随会找不到目标,所以我们要在代码里面写明,当其中一辆销毁的时候,相机就不再进行跟随了:
41.jpg
紧接着我们要给游戏添加音效,我们开坦克要有发动机的声音,开火要有炮弹的声音,等等没有这些音效的话,就像吃饭没有菜一样,游戏就不好玩了。
我们先添加背景音乐,添加一个空的游戏对象,命名为GameManager,然后给它添加一个Audio Source,并且Audio Clip设置为BackgroundMusic,再勾选Play On Awake和Loop:
42.jpg
这就设置好了游戏的背景音乐了。
接下来我们再设置好其他的音效,先是坦克血量为零时的爆炸声音,完善TankHealth的脚本:
43.jpg
然后给脚本添加音效对象:
44.jpg
所有的音效都在资源包里面:
45.jpg
其他音效的添加方法跟这类似,就不一一截图列举了。
到这里游戏就基本上可以玩了。

37.jpg
回复

使用道具

成为第一个回答人

B Color Link Quote Code Smilies
返回顶部