protected virtual void OnTrackingFound()
    {
        var           rendererComponents = GetComponentsInChildren <Renderer>(true);
        var           colliderComponents = GetComponentsInChildren <Collider>(true);
        var           canvasComponents   = GetComponentsInChildren <Canvas>(true);
        ButtonsScript script             = GetComponent <ButtonsScript>();


        PlaySoundOnStateChange simon = GetComponentInChildren <PlaySoundOnStateChange>();

        // Enable rendering:
        foreach (var component in rendererComponents)
        {
            component.enabled = true;
        }

        // Enable colliders:
        foreach (var component in colliderComponents)
        {
            component.enabled = true;
        }

        // Enable canvas':
        foreach (var component in canvasComponents)
        {
            component.enabled = true;
        }

        script.Initialize();
        simon.Initialize();
        simon.PlayOnAppear();
    }
    protected virtual void OnTrackingLost()
    {
        var rendererComponents       = GetComponentsInChildren <Renderer>(true);
        var colliderComponents       = GetComponentsInChildren <Collider>(true);
        var canvasComponents         = GetComponentsInChildren <Canvas>(true);
        PlaySoundOnStateChange simon = GetComponentInChildren <PlaySoundOnStateChange>();

        // Disable rendering:
        foreach (var component in rendererComponents)
        {
            component.enabled = false;
        }

        // Disable colliders:
        foreach (var component in colliderComponents)
        {
            component.enabled = false;
        }

        // Disable canvas':
        foreach (var component in canvasComponents)
        {
            component.enabled = false;
        }

        //simon.Initialize(); //don't need to initialize because  we have already enabled the audio source in this case.
        simon.PlayOnDisappear();
    }