Ruby's Adventrue游戏制作笔记(十四)Unity播放游戏音效
- 前言
- 一、创建背景音乐
- 二、创建新的脚本
- 三、在其他需要播放的所有脚本中进行操作
- 四、给敌人添加音效
- 五、给玩家添加移动音效
- 系列链接
前言
本文章是我学习Unity官方项目项目所做笔记,作为学习Unity的游戏笔记,在最后一章会发出源码,如果等不及可以直接看源码,里面也有很多注释相关,话不多说,让Ruby动起来!
游戏引擎:Unity2020.3
一、创建背景音乐
创建一个空的object
添加新的组件 Audio source
选择背景音乐
二、创建新的脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 播放音乐的脚本
public class AudioManager : MonoBehaviour
{
// 获取音效
private AudioSource audioS;
public static AudioManager instance
{
get;
private set;
}
void Start()
{
instance = this;
audioS = GetComponent<AudioSource>();
}
/* // 播放指定音效
public void AudioPlay(AudioClip clip)
{
audioS.PlayOneShot(clip);
}*/
// 随机播放音乐的方法
public void RandomPlay(params AudioClip[] clips)
{
int index = Random.Range(0, clips.Length);
AudioClip clip = clips[index];
audioS.PlayOneShot(clip);
}
}
三、在其他需要播放的所有脚本中进行操作
在食物的脚本中拖入音效
玩家音效
拖入音效到预制体
四、给敌人添加音效
给敌人添加修复音效
给机器人添加移动音效
在robot添加新Audio source
设置为loop,并且将Spatial blend 设置为 3D,再设置Max Distance为10
可以看到音效范围
因为音效在主相机上播放,所以要改变audio listener
让摄像机与机器人在一个平面上
在Ruby中创建Audio Listener,使音效在同一平面内
五、给玩家添加移动音效
因为移动是持续的,所以要设置音效播放休息时间,否则会一直播放
设置一个bool型变量判断当前音效是否播放完毕,由于音效时间为2秒,所以设置restTime为2;
在Update中进行计时
在相应应该播放音效的地方进行音效播放
此时播放为2秒一次。