// Start is called before the first frame update
 void Start()
 {
     PlayMusic();
     pitchBendGroup = Resources.Load <AudioMixerGroup>("Pitch Bender");
     collectibleSound.outputAudioMixerGroup = pitchBendGroup;
 }
Exemplo n.º 2
0
 public static AudioSource PlayClipAt(string name, Vector3 pos, AudioMixerGroup mixerGroup, float delay = 0f)
 {
     return(PlayClipAt(instance[name], pos, mixerGroup, delay));
 }
Exemplo n.º 3
0
 public void ClearSFXMixing()
 {
     currentSfxMixer = null;
 }
Exemplo n.º 4
0
 /// <summary>
 /// 设置声音代理辅助器所在的混音组。
 /// </summary>
 /// <param name="audioMixerGroup">混音组。</param>
 protected internal virtual void SetAudioMixerGroup(AudioMixerGroup audioMixerGroup)
 {
     m_AudioMixerGroup = audioMixerGroup;
 }
Exemplo n.º 5
0
 public void Play(AudioClip i_AudioClip, AudioMixerGroup i_Group, float i_Volume, float i_Pitch)
 {
     Play(i_AudioClip, i_Group, i_Volume, i_Pitch, Vector3.zero, Quaternion.identity);
 }
Exemplo n.º 6
0
        public SoundHandler Play(AudioClip clip, float volume = 1f, bool loop      = false, float pitch = 1f,
                                 bool ignoreListenerPause     = false, float delay = 0f, AudioMixerGroup mixerGroup = null)
        {
            if (clip == null)
            {
                return(null);
            }

            if (_handlers.Count >= MaxSounds)
            {
                Debug.Log("[SoundManager] Too many sounds");
                return(null);
            }

            var go = new GameObject(string.Format("Sound: {0}", clip.name));

            go.transform.SetParent(transform);
            var source = go.AddComponent <AudioSource>();

            source.clip                  = clip;
            source.priority              = 128;
            source.playOnAwake           = false;
            source.volume                = volume;
            source.loop                  = loop;
            source.pitch                 = pitch;
            source.outputAudioMixerGroup = mixerGroup;
            source.ignoreListenerPause   = ignoreListenerPause;

            var sound = new SoundHandler(source);

            _handlers.Add(sound);

            if (delay > 0)
            {
                source.PlayDelayed(delay);
            }
            else
            {
                source.Play();
            }

            return(sound);
        }
Exemplo n.º 7
0
 public void Toggle(AudioMixerGroup group)
 {
     AudioManager.Manager.Toggle(group);
 }
Exemplo n.º 8
0
        public IEnumerator InitThings()
        {
            MelonLogger.Log("Waiting for init");

            while (ReferenceEquals(NetworkManager.field_Internal_Static_NetworkManager_0, null))
            {
                yield return(null);
            }
            while (ReferenceEquals(VRCAudioManager.field_Private_Static_VRCAudioManager_0, null))
            {
                yield return(null);
            }
            while (ReferenceEquals(VRCUiManager.prop_VRCUiManager_0, null))
            {
                yield return(null);
            }

            var audioManager = VRCAudioManager.field_Private_Static_VRCAudioManager_0;

            myUIGroup = new[]
            {
                audioManager.field_Public_AudioMixerGroup_0, audioManager.field_Public_AudioMixerGroup_1,
                audioManager.field_Public_AudioMixerGroup_2
            }.Single(it => it.name == "UI");

            MelonLogger.Log("Start init");

            NetworkManagerHooks.Initialize();

            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("JoinNotifier.joinnotifier.assetbundle"))
                using (var tempStream = new MemoryStream((int)stream.Length))
                {
                    stream.CopyTo(tempStream);

                    myAssetBundle            = AssetBundle.LoadFromMemory_Internal(tempStream.ToArray(), 0);
                    myAssetBundle.hideFlags |= HideFlags.DontUnloadUnusedAsset;
                }

            myJoinSprite            = myAssetBundle.LoadAsset_Internal("Assets/JoinNotifier/JoinIcon.png", Il2CppType.Of <Sprite>()).Cast <Sprite>();
            myJoinSprite.hideFlags |= HideFlags.DontUnloadUnusedAsset;

            if (File.Exists(CustomJoinSoundFileName))
            {
                MelonLogger.Msg("Loading custom join sound");
                var uwr     = UnityWebRequest.Get($"file://{Path.Combine(Environment.CurrentDirectory, CustomJoinSoundFileName)}");
                var asyncOp = uwr.SendWebRequest();

                while (uwr.isDone)
                {
                    yield return(null);
                }

                myJoinClip = WebRequestWWW.InternalCreateAudioClipUsingDH(uwr.downloadHandler, uwr.url, false, false, AudioType.UNKNOWN);
            }

            if (myJoinClip == null)
            {
                myJoinClip = myAssetBundle.LoadAsset_Internal("Assets/JoinNotifier/Chime.ogg", Il2CppType.Of <AudioClip>()).Cast <AudioClip>();
            }

            myJoinClip.hideFlags |= HideFlags.DontUnloadUnusedAsset;

            if (File.Exists(CustomLeaveSoundFileName))
            {
                MelonLogger.Msg("Loading custom leave sound");

                var uwr     = UnityWebRequest.Get($"file://{Path.Combine(Environment.CurrentDirectory, CustomLeaveSoundFileName)}");
                var asyncOp = uwr.SendWebRequest();

                while (uwr.isDone)
                {
                    yield return(null);
                }

                myLeaveClip = WebRequestWWW.InternalCreateAudioClipUsingDH(uwr.downloadHandler, uwr.url, false, false, AudioType.UNKNOWN);
            }

            if (myLeaveClip == null)
            {
                myLeaveClip = myAssetBundle.LoadAsset_Internal("Assets/JoinNotifier/DoorClose.ogg", Il2CppType.Of <AudioClip>()).Cast <AudioClip>();
            }

            myLeaveClip.hideFlags |= HideFlags.DontUnloadUnusedAsset;

            CreateGameObjects();

            NetworkManagerHooks.OnJoin  += OnPlayerJoined;
            NetworkManagerHooks.OnLeave += OnPlayerLeft;
        }
Exemplo n.º 9
0
        /// <summary>
        /// Plays a sound, signature with all options
        /// </summary>
        /// <param name="audioClip"></param>
        /// <param name="mmSoundManagerTrack"></param>
        /// <param name="location"></param>
        /// <param name="loop"></param>
        /// <param name="volume"></param>
        /// <param name="ID"></param>
        /// <param name="fade"></param>
        /// <param name="fadeInitialVolume"></param>
        /// <param name="fadeDuration"></param>
        /// <param name="fadeTween"></param>
        /// <param name="persistent"></param>
        /// <param name="recycleAudioSource"></param>
        /// <param name="audioGroup"></param>
        /// <param name="pitch"></param>
        /// <param name="panStereo"></param>
        /// <param name="spatialBlend"></param>
        /// <param name="soloSingleTrack"></param>
        /// <param name="soloAllTracks"></param>
        /// <param name="autoUnSoloOnEnd"></param>
        /// <param name="bypassEffects"></param>
        /// <param name="bypassListenerEffects"></param>
        /// <param name="bypassReverbZones"></param>
        /// <param name="priority"></param>
        /// <param name="reverbZoneMix"></param>
        /// <param name="dopplerLevel"></param>
        /// <param name="spread"></param>
        /// <param name="rolloffMode"></param>
        /// <param name="minDistance"></param>
        /// <param name="maxDistance"></param>
        /// <returns></returns>
        public virtual AudioSource PlaySound(AudioClip audioClip, MMSoundManagerTracks mmSoundManagerTrack, Vector3 location,
                                             bool loop       = false, float volume            = 1.0f, int ID = 0,
                                             bool fade       = false, float fadeInitialVolume = 0f, float fadeDuration = 1f, MMTweenType fadeTween = null,
                                             bool persistent = false,
                                             AudioSource recycleAudioSource = null, AudioMixerGroup audioGroup = null,
                                             float pitch          = 1f, float panStereo = 0f, float spatialBlend = 0.0f,
                                             bool soloSingleTrack = false, bool soloAllTracks         = false, bool autoUnSoloOnEnd   = false,
                                             bool bypassEffects   = false, bool bypassListenerEffects = false, bool bypassReverbZones = false, int priority            = 128, float reverbZoneMix = 1f,
                                             float dopplerLevel   = 1f, int spread = 0, AudioRolloffMode rolloffMode = AudioRolloffMode.Logarithmic, float minDistance = 1f, float maxDistance    = 500f,
                                             bool doNotAutoRecycleIfNotDonePlaying = false, float playbackTime = 0f
                                             )
        {
            if (!audioClip)
            {
                return(null);
            }

            // audio source setup ---------------------------------------------------------------------------------

            // we reuse an audiosource if one is passed in parameters
            AudioSource audioSource = recycleAudioSource;

            if (audioSource == null)
            {
                // we pick an idle audio source from the pool if possible
                audioSource = _pool.GetAvailableAudioSource(PoolCanExpand, this.transform);
                if ((audioSource != null) && (!loop))
                {
                    recycleAudioSource = audioSource;
                    // we destroy the host after the clip has played (if it not tag for reusability.
                    StartCoroutine(_pool.AutoDisableAudioSource(audioClip.length / Mathf.Abs(pitch), audioSource, audioClip, doNotAutoRecycleIfNotDonePlaying));
                }
            }

            // we create an audio source if needed
            if (audioSource == null)
            {
                _tempAudioSourceGameObject = new GameObject("MMAudio_" + audioClip.name);
                SceneManager.MoveGameObjectToScene(_tempAudioSourceGameObject, this.gameObject.scene);
                audioSource = _tempAudioSourceGameObject.AddComponent <AudioSource>();
            }

            // audio source settings ---------------------------------------------------------------------------------

            audioSource.transform.position = location;
            audioSource.clip                  = audioClip;
            audioSource.pitch                 = pitch;
            audioSource.spatialBlend          = spatialBlend;
            audioSource.panStereo             = panStereo;
            audioSource.loop                  = loop;
            audioSource.bypassEffects         = bypassEffects;
            audioSource.bypassListenerEffects = bypassListenerEffects;
            audioSource.bypassReverbZones     = bypassReverbZones;
            audioSource.priority              = priority;
            audioSource.reverbZoneMix         = reverbZoneMix;
            audioSource.dopplerLevel          = dopplerLevel;
            audioSource.spread                = spread;
            audioSource.rolloffMode           = rolloffMode;
            audioSource.minDistance           = minDistance;
            audioSource.maxDistance           = maxDistance;
            audioSource.time                  = playbackTime;

            // track and volume ---------------------------------------------------------------------------------

            if (settingsSo != null)
            {
                audioSource.outputAudioMixerGroup = settingsSo.MasterAudioMixerGroup;
                switch (mmSoundManagerTrack)
                {
                case MMSoundManagerTracks.Master:
                    audioSource.outputAudioMixerGroup = settingsSo.MasterAudioMixerGroup;
                    break;

                case MMSoundManagerTracks.Music:
                    audioSource.outputAudioMixerGroup = settingsSo.MusicAudioMixerGroup;
                    break;

                case MMSoundManagerTracks.Sfx:
                    audioSource.outputAudioMixerGroup = settingsSo.SfxAudioMixerGroup;
                    break;

                case MMSoundManagerTracks.UI:
                    audioSource.outputAudioMixerGroup = settingsSo.UIAudioMixerGroup;
                    break;
                }
            }
            if (audioGroup)
            {
                audioSource.outputAudioMixerGroup = audioGroup;
            }
            audioSource.volume = volume;

            // we start playing the sound
            audioSource.Play();

            // we destroy the host after the clip has played if it was a one time AS.
            if (!loop && !recycleAudioSource)
            {
                Destroy(_tempAudioSourceGameObject, audioClip.length);
            }

            // we fade the sound in if needed
            if (fade)
            {
                FadeSound(audioSource, fadeDuration, fadeInitialVolume, volume, fadeTween);
            }

            // we handle soloing
            if (soloSingleTrack)
            {
                MuteSoundsOnTrack(mmSoundManagerTrack, true, 0f);
                audioSource.mute = false;
                if (autoUnSoloOnEnd)
                {
                    MuteSoundsOnTrack(mmSoundManagerTrack, false, audioClip.length);
                }
            }
            else if (soloAllTracks)
            {
                MuteAllSounds();
                audioSource.mute = false;
                if (autoUnSoloOnEnd)
                {
                    StartCoroutine(MuteAllSoundsCoroutine(audioClip.length - playbackTime, false));
                }
            }

            // we prepare for storage
            _sound.ID         = ID;
            _sound.Track      = mmSoundManagerTrack;
            _sound.Source     = audioSource;
            _sound.Persistent = persistent;

            // we check if that audiosource is already being tracked in _sounds
            bool alreadyIn = false;

            for (int i = 0; i < _sounds.Count; i++)
            {
                if (_sounds[i].Source == audioSource)
                {
                    _sounds[i] = _sound;
                    alreadyIn  = true;
                }
            }

            if (!alreadyIn)
            {
                _sounds.Add(_sound);
            }

            // we return the audiosource reference
            return(audioSource);
        }
Exemplo n.º 10
0
        /// <summary>
        /// Play any sound
        /// </summary>
        /// <param name="audio">Audio to be played</param>
        /// <param name="type">Type of sound</param>
        //public void Play(string resourcePath, SoundType type, float volume = 1f, bool switchMusicSmooth = true, bool loop = false, bool exclusiveSound = false, float duration = 0, float pitch = 1f)
        //{
        //    if (m_cachedSounds.ContainsKey(resourcePath))
        //    {
        //        Play(m_cachedSounds[resourcePath], type, volume, loop, switchMusicSmooth, exclusiveSound, duration, pitch);
        //    }
        //    else
        //    {
        //        AudioClip clip = Resources.Load<AudioClip>(resourcePath);
        //        m_cachedSounds.Add(resourcePath, clip);
        //        Play(m_cachedSounds[resourcePath], type, volume, loop, switchMusicSmooth, exclusiveSound, duration, pitch);
        //    }
        //}


        /// <summary>
        /// Play any sound
        /// </summary>
        /// <param name="audio">Audio to be played</param>
        /// <param name="type">Type of sound</param>
        public void Play(AudioClip audioClip, SoundType type, float volume = 1f, bool loop = false,
                         bool exclusiveSound             = true,
                         float duration                  = 0, float pitch = 1f, float panStereo = 0f, float startFrom = 0f,
                         AudioMixerGroup audioMixerGroup = null, bool switchMusicSmooth = false)
        {
            if (audioClip == null)
            {
                return;
            }

            switch (type)
            {
            case SoundType.Music:

                if (_musicChannel != null && _musicChannel.clip != null &&
                    _musicChannel.clip.name.Equals(audioClip.name) && _musicChannel.isPlaying)
                {
                    if (_musicChannel.clip.name.Equals(audioClip.name))
                    {
                        _musicChannel.volume = volume;
                    }
                    return;
                }

                if (_musicChannel.clip != null && switchMusicSmooth)
                {
                    StartCoroutine(SwitchMusic(audioClip, volume));
                }
                else
                {
                    //volume = m_musicVolume;
                    _musicChannel.volume = volume;
                    _musicChannel.clip   = audioClip;
                    _musicChannel.loop   = true;
                    _musicChannel.Play();
                }

                break;

            case SoundType.SoundEffect2D:

                if (_muteAudio)
                {
                    return;
                }

                // volume = type == SoundType.SoundEffect2D ? m_soundVolume : m_narrationVolume;

                if (exclusiveSound)
                {
                    for (int i = 0; i < _exclusiveSounds.Count; i++)
                    {
                        if (!_exclusiveSounds[i].IsPlaying)
                        {
                            _exclusiveSounds[i].Play(audioClip, loop, volume, duration, pitch, panStereo, startFrom,
                                                     audioMixerGroup);
                            return;
                        }
                    }

                    GameObject go = new GameObject("ExclusiveSound");
                    var        removeAfterPlay = go.AddComponent <PlayAndRemove>();
                    removeAfterPlay.Play(audioClip, loop, volume, duration, pitch, panStereo, startFrom,
                                         audioMixerGroup);
                    _exclusiveSounds.Add(removeAfterPlay);
                    removeAfterPlay.transform.SetParent(transform);
                    return;
                }

                bool _freeChannel = false;

                for (int i = 0; i < SoundEffectChannel; i++)
                {
                    if (_soundEffectChannels[i].clip == null || !_soundEffectChannels[i].isPlaying)
                    {
                        _soundEffectChannels[i].clip   = audioClip;
                        _soundEffectChannels[i].loop   = loop;
                        _soundEffectChannels[i].volume = volume;
                        _soundEffectChannels[i].Play();

                        _freeChannel = true;
                        break;
                    }
                }

                if (!_freeChannel)
                {
                    //Check last index used

                    if (_soundEffectChannels.Any(x => !x.loop))
                    {
                        var channel = _soundEffectChannels.FirstOrDefault(x => !x.loop);
                        _nextChannel = _soundEffectChannels.IndexOf(channel);
                    }

                    _soundEffectChannels[_nextChannel].clip   = audioClip;
                    _soundEffectChannels[_nextChannel].loop   = loop;
                    _soundEffectChannels[_nextChannel].volume = volume;
                    _soundEffectChannels[_nextChannel].Play();

                    _nextChannel++;
                    if (_nextChannel > _soundEffectChannels.Count - 1)
                    {
                        _nextChannel = 0;
                    }
                }

                break;

            case SoundType.Speech:
                break;

            default:
                break;
            }
        }
Exemplo n.º 11
0
 /// <summary> [Editor Only] Plays a sound preview in the Editor </summary>
 /// <param name="audioSource"> AudioSource that will play the sound </param>
 /// <param name="outputAudioMixerGroup"> The output AudioMixerGroup that the sound will get routed through </param>
 public void PlaySoundPreview(AudioSource audioSource, AudioMixerGroup outputAudioMixerGroup)
 {
     PlaySoundPreview(audioSource, outputAudioMixerGroup, null);
 }
Exemplo n.º 12
0
 public void CrossFadeSync(AudioClip clip, float delaySec = 0f, float fadeSec = 1.0f, AudioMixerGroup group = null)
 {
     StartCoroutine(CrossFadeCor(clip, delaySec, fadeSec, group, true));
 }
Exemplo n.º 13
0
 // --- Cross Fade ---
 public void CrossFade(AudioClip clip, float fadeSec = 1.0f, AudioMixerGroup group = null)
 {
     StartCoroutine(CrossFadeCor(clip, 0, fadeSec, group, false));
 }
Exemplo n.º 14
0
 public void FadeInBGMDelay(AudioClip clip, float delaySec = 1.0f, float fadeSec = 1.0f, AudioMixerGroup group = null)
 {
     if (currentBGMSource.clip != clip)
     {
         StartCoroutine(FadeInCor(clip, delaySec, fadeSec, group));
     }
 }
 unsafe internal static extern bool Internal_AudioRenderer_AddMixerGroupSink(AudioMixerGroup mixerGroup, void *ptr, int length, bool excludeFromMix);
Exemplo n.º 16
0
 public void Play(AudioClip clip, AudioMixerGroup group, float delay = 0, float volumeScale = 1)
 {
     StartCoroutine(RoutinePlay(clip, group, delay, volumeScale));
 }
Exemplo n.º 17
0
 public abstract void SetMixerGroup(AudioMixerGroup amg);
Exemplo n.º 18
0
 public void SetVolume(AudioMixerGroup targetGroup, float value)
 {
     audioMixer.SetFloat(targetGroup.name, Mathf.Log10(value) * 20);
     PlayerPrefs.SetFloat(targetGroup.name, value);
 }
Exemplo n.º 19
0
	/*
	-----------------------
	GetMixerGroup()
	-----------------------
	*/
	public AudioMixerGroup GetMixerGroup( AudioMixerGroup defaultMixerGroup ) {
		if ( soundGroup != null ) {
			return ( soundGroup.mixerGroup != null ) ? soundGroup.mixerGroup : defaultMixerGroup:	
		}
		return defaultMixerGroup:
	} 
Exemplo n.º 20
0
 public static bool SetGroupVolume(AudioMixerGroup group, float volume)
 {
     return(group.audioMixer.SetFloat("Volume", NormalizedToMixerValue(volume)));
 }
Exemplo n.º 21
0
 public void RePopulate(AudioMixerGroup audioMixerGroup, Slider slider)
 {
     FindObjectOfType <GameMangaer>().PopulateList(BackgroundMusic);
     GeneralMixer = audioMixerGroup;
     slider.value = volume;
 }
Exemplo n.º 22
0
 public void PlayNote(AudioClip clip, AudioMixerGroup channel)
 {
     aS.PlayOneShot(clip);
 }
Exemplo n.º 23
0
 public void Play(AudioClip i_AudioClip, AudioMixerGroup i_Group)
 {
     Play(i_AudioClip, i_Group, 1f, 1f, Vector3.zero, Quaternion.identity);
 }
Exemplo n.º 24
0
    const float maxFXVOL             = 3.0f; //in decibles

    // Use this for initialization
    void Start()
    {
        timer = 0.0;
        AM    = Resources.Load("MasterMixer") as AudioMixer;

        loop1  = new AudioSource();
        loop2  = new AudioSource();
        drums  = new AudioSource();
        pedals = new AudioSource();
        paint1 = new AudioSource();
        paint2 = new AudioSource();
        paint3 = new AudioSource();
        paint4 = new AudioSource();

        intro  = this.gameObject.AddComponent(typeof(AudioSource)) as AudioSource;
        loop1  = this.gameObject.AddComponent(typeof(AudioSource)) as AudioSource;
        loop2  = this.gameObject.AddComponent(typeof(AudioSource)) as AudioSource;
        drums  = this.gameObject.AddComponent(typeof(AudioSource)) as AudioSource;
        pedals = this.gameObject.AddComponent(typeof(AudioSource)) as AudioSource;
        paint1 = this.gameObject.AddComponent(typeof(AudioSource)) as AudioSource;
        paint2 = this.gameObject.AddComponent(typeof(AudioSource)) as AudioSource;
        paint3 = this.gameObject.AddComponent(typeof(AudioSource)) as AudioSource;
        paint4 = this.gameObject.AddComponent(typeof(AudioSource)) as AudioSource;

        if (AM != null)
        {
            intro.outputAudioMixerGroup = AM.FindMatchingGroups("Intro") [0];
            AudioMixerGroup looper = AM.FindMatchingGroups("Loops") [0];
            loop1.outputAudioMixerGroup  = looper;
            loop2.outputAudioMixerGroup  = looper;
            drums.outputAudioMixerGroup  = AM.FindMatchingGroups("Drums") [0];
            pedals.outputAudioMixerGroup = AM.FindMatchingGroups("Pedals") [0];
            AudioMixerGroup FXer = AM.FindMatchingGroups("FX") [0];
            paint1.outputAudioMixerGroup = FXer;
            paint2.outputAudioMixerGroup = FXer;
            paint3.outputAudioMixerGroup = FXer;
            paint4.outputAudioMixerGroup = FXer;
        }

        loops = new List <AudioClip> ();
        tones = new List <AudioClip> ();

        introClip  = Resources.Load("Audio/loops/ClayOpen") as AudioClip;
        loop1Clip  = Resources.Load("Audio/loops/ClayLoop1") as AudioClip;
        loop2Clip  = Resources.Load("Audio/loops/ClayLoop2") as AudioClip;
        loop3Clip  = Resources.Load("Audio/loops/ClayLoop3") as AudioClip;
        loop4Clip  = Resources.Load("Audio/loops/ClayLoop4") as AudioClip;
        loop5Clip  = Resources.Load("Audio/loops/ClayLoop5") as AudioClip;
        loop6Clip  = Resources.Load("Audio/loops/ClayLoop6") as AudioClip;
        loop7Clip  = Resources.Load("Audio/loops/ClayLoop7") as AudioClip;
        loop8Clip  = Resources.Load("Audio/loops/ClayLoop8") as AudioClip;
        loop9Clip  = Resources.Load("Audio/loops/ClayLoop9") as AudioClip;
        loop10Clip = Resources.Load("Audio/loops/ClayLoop10") as AudioClip;
        loop11Clip = Resources.Load("Audio/loops/ClayLoop11") as AudioClip;
        loop12Clip = Resources.Load("Audio/loops/ClayLoop12") as AudioClip;
        loop13Clip = Resources.Load("Audio/loops/ClayLoop13") as AudioClip;
        drumClip   = Resources.Load("Audio/ClayDrumLop") as AudioClip;
        pedal1Clip = Resources.Load("Audio/ClayPed1234") as AudioClip;
        pedal2Clip = Resources.Load("Audio/ClayPed1235") as AudioClip;
        tone1      = Resources.Load("Audio/scale/1") as AudioClip;
        tone2      = Resources.Load("Audio/scale/2") as AudioClip;
        tone3      = Resources.Load("Audio/scale/3") as AudioClip;
        tone4      = Resources.Load("Audio/scale/4") as AudioClip;
        tone5      = Resources.Load("Audio/scale/5") as AudioClip;
        tone6      = Resources.Load("Audio/scale/6") as AudioClip;
        tone7      = Resources.Load("Audio/scale/7") as AudioClip;
        tone8      = Resources.Load("Audio/scale/8") as AudioClip;

        loops.Add(loop1Clip);
        loops.Add(loop2Clip);
        loops.Add(loop3Clip);
        loops.Add(loop4Clip);
        loops.Add(loop5Clip);
        loops.Add(loop6Clip);
        loops.Add(loop7Clip);
        loops.Add(loop8Clip);
        loops.Add(loop9Clip);
        loops.Add(loop10Clip);
        loops.Add(loop11Clip);
        loops.Add(loop12Clip);
        loops.Add(loop13Clip);

        tones.Add(tone1);
        tones.Add(tone2);
        tones.Add(tone3);
        tones.Add(tone4);
        tones.Add(tone5);
        tones.Add(tone6);
        tones.Add(tone7);
        tones.Add(tone8);

        introduction = true;
        introTimer   = introClip.length;
        intro.clip   = introClip;
        intro.Play();

        loopTimer          = 0.0;
        firstLoopIsPlaying = false;
        loop1.clip         = loop3Clip;

        drums.clip = drumClip;

        pedalTimer  = 0.0;
        pedals.clip = pedal2Clip;

        introlowpasscufoffmin = 0.00f;
        introlowpasscufoffmax = 22000.00f;
        AM.SetFloat("IntroLowPassCutoff", introlowpasscufoffmin);

        placing        = false;
        fading         = false;
        fadeTimer      = 0.0f;
        placingTonePos = 0;
        placingTimer   = 0.0;
    }
Exemplo n.º 25
0
 static public void Trigger(AudioClip clipToPlay, AudioMixerGroup audioGroup = null, float volume = 1f, float pitch = 1f)
 {
     OnEvent?.Invoke(clipToPlay, audioGroup, volume, pitch);
 }
Exemplo n.º 26
0
    public static AudioSource AddAudioSource(GameObject gameObject, AudioClip clip = null, float volume = 1f, bool rollOff = false, AudioMixerGroup group = null)
    {
        AudioSource newSource;

        newSource             = gameObject.AddComponent <AudioSource>();
        newSource.clip        = clip;
        newSource.volume      = volume;
        newSource.playOnAwake = false;
        if (rollOff)
        {
            newSource.rolloffMode  = AudioRolloffMode.Linear;
            newSource.minDistance  = 3;
            newSource.maxDistance  = 15;
            newSource.spatialBlend = 1;             // Necessary for volume rolloff to take effect
        }
        newSource.outputAudioMixerGroup = group == null ? Instance.ungrouped : group;
        return(newSource);
    }
Exemplo n.º 27
0
 private static AudioSource PlayClipAt(List <AudioClipWithVolume> clips, Vector3 pos, AudioMixerGroup mixerGroup, float delay = 0f)
 {
     return(PlayClipAt(clips[UnityEngine.Random.Range(0, clips.Count)], pos, mixerGroup, delay));
 }
 // We should consider making this delegate-based in order to provide information like channel count and format. Also the term "sink" is quite audio-domain specific.
 unsafe internal static bool AddMixerGroupSink(AudioMixerGroup mixerGroup, NativeArray <float> buffer, bool excludeFromMix)
 {
     return(Internal_AudioRenderer_AddMixerGroupSink(mixerGroup, buffer.GetUnsafePtr(), buffer.Length, excludeFromMix));
 }
Exemplo n.º 29
0
 public void SetSFXMixing(string mixerId, string groupId)
 {
     currentSfxMixer = GetMixerGroup(mixerId, groupId);
 }
Exemplo n.º 30
0
        /// <summary>
        /// Plays the clip.
        /// </summary>
        /// <param name="clip">The AudioClip to play</param>
        /// <param name="volume">The volume of the AudioSource playing the clip (0.0 to 1.0)</param>
        /// <param name="loop">Loop the AudioClip?</param>
        /// <param name="pitch">Pitch shift of the AudioSource</param>
        /// <param name="delay">The volume of the AudioSource (0.0 to 1.0)</param>
        /// <param name="audioMixerGroup">The target group to which the AudioSource should route its signal</param>
        /// <returns></returns>
        public AudioSource PlayClip(AudioClip clip, float volume = 1, bool loop = false, float pitch = 1, float delay = 0f, AudioMixerGroup audioMixerGroup = null)
        {
            if (clip == null)
            {
                Debug.LogWarning("Trying to play a null clip", this);
                return(null);
            }

            AudioSource configuredAudioSource = ConfigureAudioSource(GetFreeAudioSource(), clip, volume, loop, pitch, audioMixerGroup);

            configuredAudioSource.PlayDelayed(delay);
            return(configuredAudioSource);
        }