void Awake() { if (instance != null) { Destroy(gameObject); } else { instance = this; musicSources = new AudioSource[2]; for (int i = 0; i < 2; i++) { GameObject newMusicSource = new GameObject("Music source " + (i + 1)); musicSources[i] = newMusicSource.AddComponent <AudioSource> (); newMusicSource.transform.parent = transform; } GameObject newSfx2DSource = new GameObject("2D sfx source"); sfx2DSource = newSfx2DSource.AddComponent <AudioSource> (); newSfx2DSource.transform.parent = transform; audioListener = FindObjectOfType <AudioListener> ().transform; if (FindObjectOfType <PlayerController> () != null) { playerTransform = FindObjectOfType <PlayerController> ().transform; } library = FindObjectOfType <SoundsLibrary> (); masterVolumePercent = PlayerPrefs.GetFloat("master volume", 1f); sfxVolumePercent = PlayerPrefs.GetFloat("sfx volume", 1f); musicVolumePercent = PlayerPrefs.GetFloat("music volume", 1f); } }
// Start is called before the first frame update void Awake() { if (library == null) { DontDestroyOnLoad(gameObject); library = this; } else if (library != this) { Destroy(gameObject); } }
void OnGUI() { defaultColor = GUI.backgroundColor; if (SoundsLibrary.Instance == null) { return; } library = SoundsLibrary.Instance; EditorGUILayout.BeginHorizontal(); GUI.backgroundColor = Color.green; if (GUILayout.Button("Add")) { library.AddNewItem(); } GUI.backgroundColor = defaultColor; if (GUILayout.Button("Save")) { PrefabUtility.ReplacePrefab(library.gameObject, PrefabUtility.GetPrefabParent(library.gameObject), ReplacePrefabOptions.ConnectToPrefab); } if (GUILayout.Button("Revert")) { PrefabUtility.ResetToPrefabState(library.gameObject); } EditorGUILayout.EndHorizontal(); for (int i = library.Items.Count - 1; i >= 0; i--) { SoundItem item = library.Items[i]; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("ID", GUILayout.Width(20)); item.id = EditorGUILayout.TextField(item.id, GUILayout.Width(120)); EditorGUILayout.LabelField("Clip", GUILayout.Width(50)); item.clip = (AudioClip)EditorGUILayout.ObjectField(item.clip, typeof(AudioClip), false, GUILayout.Width(180)); EditorGUILayout.LabelField("Volume", GUILayout.Width(60)); item.volume = EditorGUILayout.Slider(item.volume, 0f, 1f); EditorGUILayout.LabelField("2D", GUILayout.Width(20)); item.is2d = EditorGUILayout.Toggle(item.is2d, GUILayout.Width(20)); GUI.backgroundColor = Color.red; if (GUILayout.Button("Remove", GUILayout.Width(120))) { library.RemoveItem(item); } GUI.backgroundColor = defaultColor; EditorGUILayout.EndHorizontal(); } }