void OnValidate()
        {
            #if UNITY_EDITOR
            // Give an editor-time warning if other 'Player' Audio Actor Tags are found in the scene.
            if (triggererType == TriggererType.Player)
            {
                AudioActorTag[] tags = FindObjectsOfType <AudioActorTag>();

                if (tags != null)
                {
                    for (int i = 0; i < tags.Length; i++)
                    {
                        AudioActorTag tag = tags[i];

                        if (tag.triggererType == TriggererType.Player && tag != this)
                        {
                            EditorUtility.DisplayDialog("Warning", "The scene has multiple Audio Triggerer Tag - components set as 'Player'. " +
                                                        "Ensure that the player position is only set once.", "Ok");

                            triggererType = TriggererType.Nothing;
                        }
                    }
                }
            }
            #endif
        }
        void OnTriggerEnter(Collider other)
        {
            var audioActorTag = other.gameObject.GetComponent <AudioActorTag>();

            if (audioActorTag != null && audioActorTag.triggererType == TriggererType.Player)
            {
                insideCounter++;

                if (insideCounter == 1 && initializationSuccesfull)
                {
                    if (!alreadyCachedPlayerTag)
                    {
                        playerTag = audioActorTag;
                        alreadyCachedPlayerTag = true;
                    }

                    CalculateBlendValue();
                    coroutine = StartCoroutine(BlendValueCheck());
                }
            }
        }
        void OnTriggerEnter(Collider other)
        {
            AudioActorTag audioActorTag = other.gameObject.GetComponent <AudioActorTag>();

            switch (requireTag)
            {
            case RequiredTags.Player:
            {
                if (audioActorTag != null && audioActorTag.triggererType == TriggererType.Player)
                {
                    if (singletonTriggerCounter == 0)
                    {
                        singletonTriggerCounter++;
                        ExecuteOnEnter();
                    }
                    else
                    {
                        singletonTriggerCounter++;
                    }
                }
            }
            break;

            case RequiredTags.NonPlayer:
            {
                if (audioActorTag != null && audioActorTag.triggererType == TriggererType.NonPlayer)
                {
                    ExecuteOnEnter();
                }
            }
            break;

            case RequiredTags.AnyTagged:
            {
                if (audioActorTag != null)
                {
                    ExecuteOnEnter();
                }
            }
            break;

            case RequiredTags.Custom:
            {
                if (audioActorTag != null && audioActorTag.triggererType == TriggererType.Custom &&
                    !string.IsNullOrEmpty(customRequiredTag) &&
                    !string.IsNullOrEmpty(audioActorTag.customTriggererTag) &&
                    customRequiredTag == audioActorTag.customTriggererTag)
                {
                    if (singletonTriggerCounter == 0)
                    {
                        singletonTriggerCounter++;
                        ExecuteOnEnter();
                    }
                    else
                    {
                        singletonTriggerCounter++;
                    }
                }
            }
            break;

            case RequiredTags.None:
            { ExecuteOnEnter(); }
            break;

            default:
                break;
            }
        }