unity音量设置(同时设置到多个物体上)——引伸语言设置

在游戏中游戏设置是一个很重要的功能,但是比如语言设置和音量设置分散在很多个物体的组件上,如果每个对应的物体都放到一个链表里,会导致程序雍总难堪,使用事件调用是最好的方式

音量存储类

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中实时更新声音音量,但是这很浪费资源

原文地址:https://www.cnblogs.com/xiaoahui/p/10398484.html