今天前面的三个都是比较重要的框架,例如我们的
【事件中心】(观察者模式,委托,泛型,重载)
【单例模式基类】(单例模式,泛型)
【对象池】(字典,常用)
所以接下来我们写一个简单一点的(并不),音乐管理器。
涉及到的知识点有
- 委托
- 多线程
- 资源异步(同步)加载
- Lamda表达式
- MonoB类的方法继承
public class MusicManager : BaseManager<MusicManager>
{
//这里开始直接继承第一个单例模式基类,使得使用起来比较方便
private AudioSource BGMusic = null;//唯一一个的背景音乐
private GameObject soundObj = null;//音效
private float BGMvalue = 1;//背景音乐音量,最开始为1(最大)
private float SoundValue = 1;//音效音量,最开始为1(最大)
private List<AudioSource> soundList = new List<AudioSource>();
//存放一个list
//这里放一个构造函数,因为单例模式生成的时候,
//默认是会调用这个类的,无参构造函数来进行构造。
public MusicManager()
{
//在这里,因为我们没有继承monoBehavior 所以我们无法使用内置的Update方法
//但是我们创造了一个MonoManger类
//(作用是可以让任意一个类调用monobehaiveor函数),即使他并没有继承
MonoManager.GetInstance().AddUpdateListener(Update);
}
public void Update()
{
for (int i = soundList