コード例 #1
0
    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);
        }
    }
コード例 #2
0
 // Start is called before the first frame update
 void Awake()
 {
     if (library == null)
     {
         DontDestroyOnLoad(gameObject);
         library = this;
     }
     else if (library != this)
     {
         Destroy(gameObject);
     }
 }
コード例 #3
0
    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();
        }
    }