传送门
Unity基础框架学习–音效(1)
Unity基础框架学习–音效(2)
Unity基础框架学习–音效(3)
Unity基础框架学习–音效(4)
Unity基础框架学习–音效(5)-- 效果展示加扩展
AudioClipManager
本篇是AudioClip的管理。游戏加载时要将要用到的音效加载进内存,同时为了方便调用,需对其进行些许包装。
接下来开始:
一、SingleClip
为了便于操作,我们先封装一个类来包装 AudioClip。
右键创建c#脚本,命名为SingleClip。
我们成员只有一个AudioClip:
AudioClip myClip;
构造函数:
public SingleClip(AudioClip tempClip)
{
myClip = tempClip;
}
一个成员函数,用于播放该音效:
/// <summary>
/// 调用 一个 AudioSource, 来播放 当前 AudioClip
/// </summary>
/// <param name="tempSource"></param>
public void Play(AudioSource tempSource)
{
tempSource.clip = myClip;
tempSource.Play();
}
完整代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Lemon.audio
{
class SingleClip
{
AudioClip myClip;
// 构造函数
public SingleClip(AudioClip tempClip)
{
myClip = tempClip;
}
/// <summary>
/// 调用 一个 AudioSource, 来播放 当前 AudioClip
/// </summary>
/// <param name="tempSource"></param>
public void Play(AudioSource tempSource)
{
tempSource.clip = myClip;
tempSource.Play();
}
}
}
二、AudioClipManager
同样右键创建c#脚本,命名ClipsManager
我们加载音效片段时需要先获取该音效的名字,便于Resource的调用。
所以我们的成员变量如下:
//从配置文件中加载 Clips文件
string[] clipNames;
SingleClip[] allSingleClips;
构造函数,我们要完成两步:1、获取音效片段的名字。2、根据名字加载音效资源。
第一步
我们从txt文件读取 音效的名字,要注意:
1、文件路径为 Assets/StreamingAssetsPath/xxx.txt
(文件名见代码,可改变,没有StreamingAssetsPath文件就创建一个)。
2、txt文件存放的格式,第一行数字,表示 需要缓存多少个音效片段 ,第二行及以后,名字(不带后缀的名) + 空格 + 名字.mp3(全名),的形式:
2
name1 name1.mp3
name2 name2.mp3
/// <summary>
/// 读取配置文件
/// 文件需要放在 StreamingAssets文件下
/// </summary>
public void ReadConfig()