【Unity2D 2022:Audio】添加游戏音乐和音效

【Unity2D 2022:Audio】添加游戏音乐和音效1 创建空的游戏物体 名为 BackgroundMu 为音频播放器添加音频源 AudioSource 组件 3 将背景音乐音频赋值到 AudioClip 红色 4 设置循环播放 蓝色 unity 添加音效

大家好,欢迎来到IT知识分享网。

一、添加背景音乐

1. 创建空的游戏物体,名为BackgroundMusic

【Unity2D 2022:Audio】添加游戏音乐和音效

2. 为音频播放器添加音频源(Audio Source)组件

【Unity2D 2022:Audio】添加游戏音乐和音效

3. 将背景音乐音频赋值到AudioClip(红色)

4. 设置循环播放(蓝色)

【Unity2D 2022:Audio】添加游戏音乐和音效

二、添加草莓拾取音效

1. 为角色添加音频源组件

【Unity2D 2022:Audio】添加游戏音乐和音效

2. 取消勾选Play On Awake选项(即取消游戏开始时自动播放)

【Unity2D 2022:Audio】添加游戏音乐和音效

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

【Unity2D 2022:Audio】添加游戏音乐和音效

三、添加角色受伤音效

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

【Unity2D 2022:Audio】添加游戏音乐和音效

四、添加角色射击音效

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

【Unity2D 2022:Audio】添加游戏音乐和音效

五、添加角色走路音效

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

【Unity2D 2022:Audio】添加游戏音乐和音效

3. 将角色行走音效赋值到rubyWalkSound中

【Unity2D 2022:Audio】添加游戏音乐和音效

六、添加机器人走路音效

1. 为机器人添加Audio Source组件

2. 将机器人走路音效赋值到AudioClip中

3. 取消勾选PlayOnAwake属性

【Unity2D 2022:Audio】添加游戏音乐和音效

七、添加机器人受伤音效

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数组

【Unity2D 2022:Audio】添加游戏音乐和音效

八、添加机器人修理完成音效

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

【Unity2D 2022:Audio】添加游戏音乐和音效

        本章完。感谢阅读! 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/126138.html

(0)
上一篇 2025-09-21 14:15
下一篇 2025-09-21 14:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信