public void DesignateActiveAudioClip(BaseAudioFileObject asset)
        {
            AudioClip theClip = null;

            if (!asset.IsLibraryEmpty())
            {
                theClip = asset.GetFirstAvailableFile();
            }
            if (theClip != null)
            {
                playingClip = theClip;
            }
        }
Beispiel #2
0
        protected void OnEnable()
        {
            asset    = target as BaseAudioFileObject;
            instance = this as EditorType;

            isPreset = string.IsNullOrEmpty(AssetDatabase.GetAssetPath(asset as UnityEngine.Object));

            safeName          = FindProp("safeName");
            category          = FindProp(nameof(asset.category));
            presetDescription = FindProp("presetDescription");
            file           = FindProp(nameof(asset.file));
            files          = FindProp(nameof(asset.files));
            relativeVolume = FindProp(nameof(asset.relativeVolume));
            spatialize     = FindProp(nameof(asset.spatialize));
            maxDistance    = FindProp(nameof(asset.maxDistance));

            bypassEffects         = FindProp(nameof(asset.bypassEffects));
            bypassListenerEffects = serializedObject.FindProperty(nameof(asset.bypassListenerEffects));
            bypassReverbZones     = serializedObject.FindProperty(nameof(asset.bypassReverbZones));
        }
        public void HandleFading(BaseAudioFileObject asset)
        {
            var helperSource = AudioPlaybackToolEditor.helperSource;

            if (helperSource.isPlaying)
            {
                EditorApplication.QueuePlayerLoopUpdate();
                switch (fadeMode)
                {
                case FadeMode.FadeIn:
                    if (helperSource.time < fadeInTime)
                    {
                        if (fadeInTime == float.Epsilon)
                        {
                            helperSource.volume = asset.relativeVolume;
                        }
                        else
                        {
                            helperSource.volume = Mathf.Lerp(0, asset.relativeVolume, helperSource.time / fadeInTime);
                        }
                    }
                    else
                    {
                        helperSource.volume = asset.relativeVolume;
                    }
                    break;

                case FadeMode.FadeOut:
                    if (helperSource.time >= playingClip.length - fadeOutTime)
                    {
                        if (fadeOutTime == float.Epsilon)
                        {
                            helperSource.volume = asset.relativeVolume;
                        }
                        else
                        {
                            helperSource.volume = Mathf.Lerp(0, asset.relativeVolume, (playingClip.length - helperSource.time) / fadeOutTime);
                        }
                    }
                    break;

                case FadeMode.FadeInAndOut:
                    if (helperSource.time < playingClip.length - fadeOutTime)
                    {
                        if (fadeInTime == float.Epsilon)
                        {
                            helperSource.volume = asset.relativeVolume;
                        }
                        else
                        {
                            helperSource.volume = Mathf.Lerp(0, asset.relativeVolume, helperSource.time / fadeInTime);
                        }
                    }
                    else
                    {
                        if (fadeOutTime == float.Epsilon)
                        {
                            helperSource.volume = asset.relativeVolume;
                        }
                        else
                        {
                            helperSource.volume = Mathf.Lerp(0, asset.relativeVolume, (playingClip.length - helperSource.time) / fadeOutTime);
                        }
                    }
                    break;
                }
            }
        }