Beispiel #1
0
    private void SetSettingsFromSample(AudioSample sample)
    {
        if (AudioSource == null)
        {
            throw new Exception("AudioSourceContainer: No AudioSource set");
        }

        Layer = sample.Layer;
        AudioLayerSettings layerS = layerSettings;

        VolumeModifier = sample.Settings.Volume;

        AudioSource.mute     = layerS.Mute;
        AudioSource.loop     = sample.Settings.Loop;
        AudioSource.priority = sample.Settings.Priority;
        AudioSource.pitch    = sample.Settings.Pitch;

        AudioSource.bypassEffects         = sample.Settings.BypassEffects;
        AudioSource.bypassListenerEffects = sample.Settings.BypassListenerEffects;
        AudioSource.bypassReverbZones     = sample.Settings.BypassReverbZones;

        AudioSource.dopplerLevel = sample.Settings.DopplerLevel;
        AudioSource.panLevel     = sample.Settings.PanLevel;
        AudioSource.spread       = sample.Settings.Spread;
        AudioSource.maxDistance  = sample.Settings.MaxDistance;

        AudioSource.pan = sample.Settings.Pan2D;

        AudioSource.clip = sample.Clip;
    }
Beispiel #2
0
    private void Destroy(AudioSourceContainer source)
    {
        //Debug.Log("DESTROY " + source.gameObject.name);

        AudioLayerSettings settings = AudioLayerManager.GetAudioLayerSettings(source.Layer);

        Instance.AudioSources.Remove(source);
        GameObject.DestroyImmediate(source.gameObject);
        settings.ClipsPlaying--;
    }
Beispiel #3
0
    public static void UpdateVolume(AudioLayer layer)
    {
        AudioLayerSettings          settings   = AudioLayerManager.GetAudioLayerSettings(layer);
        List <AudioSourceContainer> containers = Instance.FindSources(layer);

        foreach (AudioSourceContainer cont in containers)
        {
            cont.UpdateVolume();
        }
    }
Beispiel #4
0
    public static void Mute(AudioLayer layer)
    {
        AudioLayerSettings          settings   = AudioLayerManager.GetAudioLayerSettings(layer);
        List <AudioSourceContainer> containers = Instance.FindSources(layer);

        foreach (AudioSourceContainer cont in containers)
        {
            cont.AudioSource.mute = settings.Mute;
        }
    }
Beispiel #5
0
    private static AudioSourceContainer RegisterAndCreateAudioSourceContainer(AudioSample sample)
    {
        GameObject soundObject = AudioSourceContainer.CreateContainer(sample);

        AudioSourceContainer cont = soundObject.GetComponent <AudioSourceContainer>();
        AudioLayerSettings   audioLayerSettings = AudioLayerManager.GetAudioLayerSettings(sample.Layer);

        //Register
        Instance.AddAudioSource(cont);
        audioLayerSettings.ClipsPlaying++;

        return(cont);
    }
Beispiel #6
0
    private static void ResumeUnmuteEtc(AudioSourceContainer con1)
    {
        if (!con1.AudioSource.isPlaying)
        {
            con1.AudioSource.Play();
        }

        AudioLayerSettings settings = AudioLayerManager.GetAudioLayerSettings(con1.Layer);

        if (!settings.Mute)
        {
            con1.AudioSource.mute = false;
        }
    }
Beispiel #7
0
    public override void OnInspectorGUI()
    {
        AudioLayerManager manager = target as AudioLayerManager;

        int count = manager.audioLayerSettings.Count;

        if (count == 0)
        {
            manager.Init();
        }

        if (SavedFoldout("Description"))
        {
            EditorGUILayout.TextArea(description);
        }

        for (int i = 0; i < count; i++)
        {
            AudioLayerSettings settings = manager.audioLayerSettings[i];
            GUIContent         name     = new GUIContent("AudioLayer: " + settings.Layer.ToString() + " Clips: " + settings.ClipsPlaying.ToString(), settingsNameTooltip);

            if (SavedFoldout(name, i))
            {
                EditorGUI.BeginChangeCheck();
                EditorGUI.indentLevel++;
                {
                    settings.Volume   = EditorGUILayout.Slider("Volume: ", settings.Volume, 0, 1);
                    settings.Mute     = EditorGUILayout.Toggle("Mute: ", settings.Mute);
                    settings.MaxClips = EditorGUILayout.IntField("MaxClips: ", settings.MaxClips);
                }
                EditorGUI.indentLevel--;
                if (EditorGUI.EndChangeCheck())
                {
                    AudioManager.Mute(settings.Layer);
                    AudioManager.UpdateVolume(settings.Layer);
                }
            }
        }
    }