在游戏中游戏设置是一个很重要的功能,但是比如语言设置和音量设置分散在很多个物体的组件上,如果每个对应的物体都放到一个链表里,会导致程序雍总难堪,使用事件调用是最好的方式
音量存储类
SoundManager{
float soundValue;
void SetSound(value);
}
设置类,其方法主要在场景中被调用,例如点击按钮时候被调用,设置声音语言等
GameSet{
//在start中获取SoundManager
event t;
void SetSound(value){//设置音量
soundManager.SetSound(value);
调用t;//调用t是多个声音物体的音量设置程序的相加,调用t,即可设置音量的同时,将音量设置到每个带有声音的物体上
}
}
声音贴附类,用于直接在某个声音物体上设置声音
SoundObsever{
start(){
//获取soundManager和声音组件,以及GameSet
//设置声音值
gameSet.t=gameSet.t+SetSound //(写错了?忘了,这是随笔)最重要一点,将事件添加到gameSet中,如果是在同一个场景中,设置音量,那么里就可以实时的将声音的音量传递到每个声音组件上
}
void SetSound();//将SoundManager的声音值设置到贴附的物体上的声音组件上
}
当然可以在update中实时更新声音音量,但是这很浪费资源