上一章中,我们遇到了一个报错,应该是在AnimationEvent的方法没有写,我们打开这个event的地方

打开PlayerHealth.cs,加入RestartLevel方法,加入后我们可以看到游戏结束后几秒就又自动开始了。

暂停界面
我们用UGUI制作一个暂停界面,在场景中新建一个Canvas,取名MenuCanvas,具体细节可以参考_CompletedAssets文件夹下的内容,做好后是这个样子的

添加一个PauseManager.cs,挂载在MenuCanvas下,其中Canvas先不勾选


按下键盘上的Esc键,即可暂停或者开始。
音效
我们给主角加上音效,他有一个受伤的音效,也有一个死亡的音效,我们现在Player下加一个AudioSource组件

打开PlayerHealth.cs,加入如下内容


如代码中所示,在受伤时播放受伤的音效,死亡是切换为死亡的音效,这里需要把死亡音效拖入代码组件中

3个怪物的音效同理,在Prefab下挂载AudioSource组件,添加怪物受伤的音效,死亡时将Clip切换为Death的音效,注意3个怪物的受伤音效和死亡音效都是独有的。
射击音效更简单,在GunVarrelEnd上添加AudioSource组件,在PlayerShoot.cs中获取组件,再在Shoot()方法中执行Play()方法播放音效即可。这里不再赘述。
接下来是背景音效,我们在场景中新建一个GameObject,加上AudioSource组件

Player On Awake 表示Awake()后就执行 ,Loop即循环播放。试一下吧,体验感觉丰富多啦!
混音音效
在MenuCanvas下添加一个MixLevel.cs脚本


然后在我们前面添加PausePanel的EffectsSlider和MusicSlider里用上MixLevel脚本的方法


EffectsSlider同理

给PauseManager.cs添加如下内容,能够在暂停时降低声音,增强游戏确实暂停了的体验。


给AudioToggle添加上控制所有音效总开关的功能

现在我们还有2个音效按钮没有功能,一个是继续,一个是退出
继续:相当于执行了PauseManager.cs中的Pause()方法,注意现在代码中的Pause()必须为public

然后我们点了按钮后既然已经执行了Pause()方法,也要把暂停界面关掉

退出游戏
按暂停界面的QuitGame按钮退出游戏,分为2中,一种是在编辑器中我们退出游戏,一种是发布后玩家玩的时候退出游戏,我们在PauseManager.cs中加入如下内容


最后在按钮上加入点击事件

我们已经接近山峰的峰顶了,测试一下,还有几个问题,如打开暂停界面时,点击按钮主角会开枪,因此我们要在主角开枪的方法中加入一个判断,即暂停时不能开枪,在PlayerShooter.cs中加入

然后我们发现主角走到最边上可以看到蓝天和大地,我们需要把它关闭

将Main Camera进行如下设置

再次运行,可以看到边界都是黑的了。好了,在这里所有的关于这个游戏的内容就结束了,中间关于粒子特效、Animation和音效的东西我还不懂,所以直接使用_CompletedAssets文件夹下的资源,中间有些地方也有没解释清楚,还可能有错误的地方,这些我以后会慢慢完善,最后感谢看到这里的朋友!
网友评论