private void performMarkerProximityChecks()
        {
            // TODO:
            foreach (SoundMarker sm in MainController.soundMarkers)
            {
                // Sounds that have an infinte range (indicated by a negative maxDistance) can be ignored
                if (sm.hotspot.hasInfiniteMaxDistance)
                {
                    continue;
                }

                SoundFile sf;
                if (!_layoutManager.soundDictionary.TryGetValue(sm.hotspot.soundID, out sf))
                {
                    continue;
                }
                if (sf.isDefaultSoundFile)
                {
                    continue;
                }                                        // Skip the default soundFile

                float distToMaxRadius = Vector2.Distance(
                    new Vector2(_camTransform.position.x, _camTransform.position.z),
                    new Vector2(sm.transform.position.x, sm.transform.position.z)
                    ) - sm.soundMaxDist;

                if (sf.loadState == LoadState.Success && distToMaxRadius > _unloadDistance)
                {
                    IEnumerable <SoundMarker> syncedMarkers = _layoutManager.layout.getSynchronisedMarkers(sm.hotspot.id);
                    if (!atLeastOneSyncedMarkerShouldBeLoaded(syncedMarkers))
                    {
                        // We should UNLOAD this AudioClip...
                        _layoutManager.UnloadSoundMarkerAndSyncedClips(sm, syncedMarkers);
                    }
                }

                if (sf.loadState != LoadState.Success && distToMaxRadius < _loadDistance)
                {
                    // We should LOAD this AudioClip...
                    _layoutManager.LoadSoundMarkerAndSyncedClips(sm, completion:
                                                                 (HashSet <SoundMarker> loadedMarkers) => {
                        // TODO: Should we stop playing and start playing all clips?
                        foreach (var loadedMarker in loadedMarkers)
                        {
                            loadedMarker.PlayAudioFromBeginning(ignoreTrigger: true);
                        }
                    });
                }
            }
        }
        public void loadOnDemandAudioForSoundMarker(SoundMarker marker, SoundFile soundFile) {
            if (!onDemandIsActive) { return; }

            Debug.LogWarning("ON-DEMAND SHOULD be Loaded: " + soundFile.filename);
            // Debug.Log("loadOnDemandAudioForSoundMarker: " + soundFile.filename);
            layoutManager.LoadSoundMarkerAndSyncedClips(marker, completion:
                (HashSet<SoundMarker> loadedMarkers) => {
                    Debug.LogWarning(   "loadOnDemandAudioForSoundMarker COMPLETE!");
                    
                    canvasControl.editSoundOverlay.refreshDebugText();
                    // foreach (var loadedMarker in loadedMarkers) {
                        
                    // }
                });
        }