" href="/post/Replace-Listlt;Tgt;Where()-with-your-own-Where-to-understand-Funclt;Tgt;" /> Sunil Ravulapalli | Add a Music On/Off button to "Easy Menu" asset in Unity 3d store

Add a Music On/Off button to "Easy Menu" asset in Unity 3d store

by sunil ravulapalli /15. March 2014 07:06 /unity /Comments (0)

The "Easy Menu" I am referring to is https://www.assetstore.unity3d.com/#/content/4230.

In MenuElement.js, In the ElementTypes enum just below image add "button_MusicSwitcher" as a new option.

In the function OnGUI add this code

case ElementTypes.button_MusicSwitcher:
 if (GUI.Button (Rect (currentPosition.x, currentPosition.y, size.x, size.y), GUIContent (caption, icon)))
	if (!locked) {
		Camera.main.GetComponent(AudioListener).enabled =  !Camera.main.GetComponent(AudioListener).enabled;
		var musicOnOff = PlayerPrefs.GetString("MUSIC");
		if (musicOnOff == "OFF")
			PlayerPrefs.SetString("MUSIC", "ON");
		else
			PlayerPrefs.SetString("MUSIC", "OFF");
	}

 break;

Usually, if you have background music in a game scene you will have an "Audio source" component attached to game object like the "Main Camera" and you would have the option "Play On Awake" checked.

Uncheck "Play On Awake" option and modify code so that you start the music using code. It will look something like this:

[RequireComponent(typeof(AudioSource))]
public class MainCamera : MonoBehaviour {

	// Use this for initialization
	void Start () 
	{
		string musicOnOff = PlayerPrefs.GetString("MUSIC");
		audio.loop = true;        
		if (musicOnOff == "OFF")
			audio.Pause();
		else
			audio.Play();

		Debug.Log("Hello:" + PlayerPrefs.GetString("MUSIC"), gameObject);		
	}
	
	// Update is called once per frame
	void Update () {
	
	}
}
blog comments powered by Disqus