大家好,欢迎来到IT知识分享网。
一、添加背景音乐
1. 创建空的游戏物体,名为BackgroundMusic
2. 为音频播放器添加音频源(Audio Source)组件
3. 将背景音乐音频赋值到AudioClip(红色)
4. 设置循环播放(蓝色)
二、添加草莓拾取音效
1. 为角色添加音频源组件
2. 取消勾选Play On Awake选项(即取消游戏开始时自动播放)
3. 编辑角色脚本
(1)创建音频源对象
public class Ruby : MonoBehaviour { // 创建音频源对象 public AudioSource audioSource; }
(2)编写playSound方法播放音效
public class Ruby : MonoBehaviour { // 创建音频源对象 public AudioSource audioSource; // 播放音效 public void playSound(AudioClip audioClip) { audioSource.PlayOneShot(audioClip); } }
PlayOneShot()方法为只播放一次音效
4. 编辑草莓脚本
(1)创建拾取音效
public class Strawberry : MonoBehaviour { // 创建拾取音效 public AudioClip pickUpSound; }
(2)在角色与草莓碰撞的方法中添加播放拾取音效
public class Strawberry : MonoBehaviour { // 创建拾取音效 public AudioClip pickUpSound; // 当角色与草莓发生碰撞时 private void OnTriggerEnter2D(Collider2D collision) { Ruby ruby = collision.GetComponent<Ruby>(); if(ruby != null) { if(ruby.healthPoint < ruby.maxHealthPoint) { // 播放拾取音效 ruby.playSound(pickUpSound); } } } }
5. 将拾取音效赋值到pickUpSound
三、添加角色受伤音效
1. 编辑角色脚本
(1)创建Ruby受伤音效
public class Ruby : MonoBehaviour { // 创建ruby受伤音效 public AudioClip rubyHitSound; }
(2)编写changeHealthPoint()方法,当生命改变量小于0(即受到伤害)时,播放角色受伤音效
public class Ruby : MonoBehaviour { // 创建ruby受伤音效 public AudioClip rubyHitSound; // Ruby改变生命值 public void changeHealthPoint(int value) { if(value < 0) { playSound(rubyHitSound); } } }
2. 将角色受伤音效赋值到rubyHitSound
四、添加角色射击音效
1. 编辑角色脚本
(1)创建Ruby射击音效
public class Ruby : MonoBehaviour { // 创建ruby射击音效 public AudioClip rubyShootSound; }
(2)编写shoot方法,播放ruby射击音效
public class Ruby : MonoBehaviour { // 创建ruby射击音效 public AudioClip rubyShootSound; // Ruby发射子弹 private void shoot() { playSound(rubyShootSound); } }
2. 将角色射击音效赋值到rubyShootSound
五、添加角色走路音效
1. 编辑角色脚本
(1)创建行走音频源对象和ruby移动音效
public class Ruby : MonoBehaviour { // 创建行走音频源对象 public AudioSource walkAudioSource; // 创建ruby移动音效 public AudioClip rubyWalkSound; }
(2)用walkAudioSource接收AudioSource组件
public class Ruby : MonoBehaviour { // 创建行走音频源对象 public AudioSource walkAudioSource; // 创建ruby移动音效 public AudioClip rubyWalkSound; void Start() { // 用walkAudioSource接收AudioSource组件 walkAudioSource = GetComponent<AudioSource>(); } }
(3) 当Ruby移动且不播放移动音效时,播放角色移动音效
public class Ruby : MonoBehaviour { // 创建行走音频源对象 public AudioSource walkAudioSource; // 创建ruby移动音效 public AudioClip rubyWalkSound; void Start() { // 用walkAudioSource接收AudioSource组件 walkAudioSource = GetComponent<AudioSource>(); } // 当Ruby移动时 if(!Mathf.Approximately(move.x, 0) || !Mathf.Approximately(move.y, 0)) { if(!walkAudioSource.isPlaying) { walkAudioSource.clip = rubyWalkSound; walkAudioSource.Play(); } } }
(4)当Ruby停止移动时,停止播放移动音效
public class Ruby : MonoBehaviour { // 创建行走音频源对象 public AudioSource walkAudioSource; // 创建ruby移动音效 public AudioClip rubyWalkSound; void Start() { // 用walkAudioSource接收AudioSource组件 walkAudioSource = GetComponent<AudioSource>(); } // 当Ruby移动时 if(!Mathf.Approximately(move.x, 0) || !Mathf.Approximately(move.y, 0)) { if(!walkAudioSource.isPlaying) { walkAudioSource.clip = rubyWalkSound; walkAudioSource.Play(); } } else { // 当Ruby停止移动时 walkAudioSource.Stop(); } }
2. 把两个音频源组件赋值到audioSource、walkAudioSource
3. 将角色行走音效赋值到rubyWalkSound中
六、添加机器人走路音效
1. 为机器人添加Audio Source组件
2. 将机器人走路音效赋值到AudioClip中
3. 取消勾选PlayOnAwake属性
七、添加机器人受伤音效
1. 创建机器人受伤音效数组
public class Enemy : MonoBehaviour { // 创建机器人受伤音效数组 public AudioClip[] enemyHitSounds; }
2. 新建一个随机数,为0~机器人受伤音效数组长度之间的随机值,然后随机播放机器人受伤特效数组中的音效
public class Enemy : MonoBehaviour { // 创建机器人受伤音效数组 public AudioClip[] enemyHitSounds; // 敌人改变生命值 public async void changeHealthPoint(int value) { if(value < 0) { // 新建一个随机数,为0~机器人受伤音效数组长度之间的随机值 int randomNum = Random.Range(0, enemyHitSounds.Length); // 随机播放机器人受伤特效数组中的音效 audioSource.PlayOneShot(enemyHitSounds[randomNum], 40); } } }
3. 将两个机器人受伤音效赋值到enemyHitSounds数组
八、添加机器人修理完成音效
1. 创建机器人修理完成音效
public class Enemy : MonoBehaviour { // 创建机器人修理完成音效 public AudioClip enemyFixSound; }
2. 播放修复完成特效
public class Enemy : MonoBehaviour { // 创建机器人修复完成音效 public AudioClip enemyFixSound; // 敌人修复完成 public void enemyFixed() { // 播放修复完成音效,100为音效音量放大倍数 audioSource.PlayOneShot(enemyFixSound, 25); } }
3. 延迟播放修复完成特效
(1)新建playFixSound方法,将播放修复完成音效的语句移动到playFixSound方法中
public class Enemy : MonoBehaviour { // 创建机器人修复完成音效 public AudioClip enemyFixSound; // 敌人修复完成 public void enemyFixed() { } // 播放敌人修复完成音效 private void playFixSound() { audioSource.PlayOneShot(enemyFixSound, 25); } }
(2)使用Invoke方法延迟调用playFixSound方法
public class Enemy : MonoBehaviour { // 创建机器人修复完成音效 public AudioClip enemyFixSound; // 敌人修复完成 public void enemyFixed() { Invoke("playFixSound", 0.2f); } // 播放敌人修复完成音效 private void playFixSound() { audioSource.PlayOneShot(enemyFixSound, 25); } }
(3) 新建stopAudioSourcePlay方法,将stop语句移动到其中,在playFixSound方法中使用Invoke方法延迟调用stopAudioSourcePlay方法
public class Enemy : MonoBehaviour { // 创建机器人修复完成音效 public AudioClip enemyFixSound; // 敌人修复完成 public void enemyFixed() { Invoke("playFixSound", 0.2f); } // 播放敌人修复完成音效 private void playFixSound() { audioSource.PlayOneShot(enemyFixSound, 25); Invoke("stopAudioSourcePlay", 1.0f); } // 停用音频源组件 private void stopAudioSourcePlay() { audioSource.Stop(); } }
3. 将机器人修复完成音效赋值到enemyFixSound
本章完。感谢阅读!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/126138.html