コード例 #1
0
        // Starts or stops a looping audio event depending on whether the play condition is met
        // Prevents retriggering when play should be continuous
        public static void startStopLoop(FMOD.Studio.EventInstance loopingSound, Boolean playConditionMet, GameObject soundSource)
        {
            var attributes = FMOD.Studio.UnityUtil.to3DAttributes(soundSource.transform.position);
            loopingSound.set3DAttributes(attributes);
            FMOD.Studio.PLAYBACK_STATE state;
            loopingSound.getPlaybackState(out state);

            // Stop looping sound if already playing and play condition is no longer true
            if (state == PLAYBACK_STATE.PLAYING)
            {
                if (!playConditionMet)
                {
                    loopingSound.stop(FMOD.Studio.STOP_MODE.ALLOWFADEOUT);
                }
            }
            // Start looping sound if play condition is met and sound not already playing
            else
            {
                if(playConditionMet)
                {
                    loopingSound.start();
                }
            }
        }