예제 #1
0
        public void UserDidEnterMarkerTrigger(SoundMarkerTrigger.Type triggerType)
        {
            _audioSrc.priority = 8;

            // -----------------------------
            switch (triggerType)
            {
            case SoundMarkerTrigger.Type.OnDemandLoad: UserDidEnterOnDemandLoadTrigger(); return;

            // case SoundMarkerTrigger.Type.OnDemandUnload: UserDidEnterOnDemandUnloadTrigger(); return;
            case SoundMarkerTrigger.Type.Playback: break;

            default: return;
            }
            // -----------------------------
            // BELOW - the Playback trigger

            userIsInsideTriggerRange = true;

            timeUserHasHeardSound = 0; // Restart time hearing the sound

            if ((hotspot.playOnce && userHasHeardSound) || !hotspot.triggerPlayback)
            {
                return;
            }
            // if (!hotspot.triggerPlayback) { return; }

            if (markerDelegate == null)
            {
                PlayAudioFromBeginning(); // audioSrc.Play();
                return;
            }
            if (markerDelegate.shouldSoundMarkerTriggerPlayback(this))
            {
                PlayAudioFromBeginning(); // audioSrc.Play();
            }
        }
예제 #2
0
        public void UserDidExitMarkerTrigger(SoundMarkerTrigger.Type triggerType)
        {
            _audioSrc.priority = hotspot.hasInfiniteMaxDistance ? 0 : 8;

            // -----------------------------
            switch (triggerType)
            {
            // case SoundMarkerTrigger.Type.OnDemandLoad: UserDidExitOnDemandLoadTrigger(); return;
            case SoundMarkerTrigger.Type.OnDemandUnload: UserDidExitOnDemandUnloadTrigger(); return;

            case SoundMarkerTrigger.Type.Playback: break;

            default: return;
            }
            // -----------------------------
            // BELOW - the Playback trigger

            userIsInsideTriggerRange = false;

            // if (!hotspot.triggerPlayback && !userHasHeardSound) { return; }
            if (!(hotspot.triggerPlayback || (hotspot.playOnce && userHasHeardSound)))
            {
                return;
            }

            if (markerDelegate == null)
            {
                _audioSrc.Stop();
                return;
            }

            if (markerDelegate.shouldSoundMarkerStopPlaybackAfterUserLeftTriggerRange(this))
            {
                _audioSrc.Stop();
            }
        }