说明:红宝石和蓝宝石是一次性的,所以拾取后要摧毁音效对象,而黄宝石是需要重复利用的,不需要摧毁。
为了整体音效更好管理,新建一个SoundEffectsPlayer类,附加在SFX Player对象上,SFX Player对象上要有AudioSource组件。
public class SoundEffectsPlayer : MonoBehaviour |
StarGem,黄色跳跃星星脚本中,注释掉AudioSource定义代码,播放音效改为调用SoundEffectsPlayer类中的AudioSource:SoundEffectsPlayer.audioSource.PlayOneShot(pickUpSFX);//播放音效
一次性宝石
分别在红、蓝宝石组件上新建两个同名脚本:VitoryGem、GateTrigger
统一代码为:拾取时播放音效、特效。
public class GateTrigger : MonoBehaviour |
红、蓝宝石不需要判断是否和玩家产生碰撞。通过碰撞物理层级来实现,限定两个宝石只和玩家产生碰撞
新建Player和Interactable层级
项目设置中,设置Interactable物理层级只和player碰撞。
玩家音效
在PlayerController中添加音源组件
在跳跃、二段跳、落地等状态中添加音效(截图为跳跃状态,其他代码一样)
然后在编辑器中拖入各自的音频文件
添加背景音乐(Loop:循环播放,Play On Awake:开局自动播放)
调整音量
在每个有创建AudioSource,的脚本中添加音量调整滑块