您的位置:首页 > 产品设计 > UI/UE

用NGUI的控件控制游戏音量、音效、开关。

2013-12-09 18:51 197 查看
建立 UICheckBox作为背景音乐的勾选框,添加UIButton Sound组件,其下的Audio Clip属性可直接附上音效名字。

建立一个空物体绑定下边的脚本(脚本里的一些组件名字不太一样,别直接用,看明白再自己改),复选框的UICheckBox的Event Receiver绑定之前建的空物体

先定义  AudioSource AS;

void Awake ()

    {

        AS = GameObject.Find("Camera").audio;

        Debug.Log(PlayerPrefs.GetInt("IsMusicPlay")+"=======================================");

        //判断之前一次游戏时背景音乐是否开启如果读取出的是0,则说明没有开启,这次也默认不会开启。

        if (PlayerPrefs.GetInt("IsMusicPlay", 1) == 0)

            GameObject.Find("ck_music").GetComponent<UICheckbox>().isChecked = false;

        //读取上一次游戏是设置的背景音量,并赋值给滚动条,使滚动条初始为相应位置。

      AS.volume=PlayerPrefs.GetFloat("Volume",1);

      GameObject.Find("Slider_Music").GetComponent<UISlider>().sliderValue = AS.volume;

      

      //判断之前一次游戏时音效是否开启,如果读取的是1,则说明开启,这次也默认开启。

      if (PlayerPrefs.GetInt("IsEffectPlay", 1) == 1)

          GameObject.Find("ck_effect").GetComponent<UICheckbox>().isChecked = true;
}

// Update is called once per frame

//音乐是否播放

    void ck_musicplay()

    {

        //如果音乐复选框是关闭/开启,则关闭/开启音乐,并存储当前音乐状态,传递给下一个场景等等。

        if ( GameObject.Find("ck_music").GetComponent<UICheckbox>().isChecked == false)

        {

            AS.Stop();

            PlayerPrefs.SetInt("IsMusicPlay", 0);

        }

        else

        {

            AS.Play();

            PlayerPrefs.SetInt("IsMusicPlay",1);

        }

        

}

    //音效是否播放

    void ck_effect()

    {

        if (GameObject.Find("ck_effect").GetComponent<UICheckbox>().isChecked == false)

        {

            PlayerPrefs.SetInt("IsEffectPlay", 0);

            Debug.Log("- -!");

        }

        else

        {

            PlayerPrefs.SetInt("IsEffectPlay", 1);

            Debug.Log("= =!");

        }

    }

//音乐声音大小
void MusicSlider()
{

        //通过滚动条的Value值来赋值给音乐的声音大小并存储,方便传递给下一个场景等等。
AS.volume = GameObject.Find("Slider_Music").GetComponent<UISlider>().sliderValue;
PlayerPrefs.SetFloat("Volume",AS.volume);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Unity