//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //	* Derived Method: Start
 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 void Start()
 {
     if (m_bUseSavedOption)
     {
         SetValue(SavedPreferenceTool.GetFloat(m_sSavedOptionKey, m_fDefaultValue));
     }
 }
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //	* Derived Method: On Disable
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    protected override void OnDisable()
    {
        base.OnDisable();

        m_rSettingsMenuManager.gameObject.SetActive(true);

        float newTambSize = 0.731f;

        m_rInstrumentZoomHandler.SetValue(SavedPreferenceTool.GetFloat("SizePreference", newTambSize));
        m_rTextBoxTransitionEffect.m_aRevealAnimationEffect[0].m_vEndPosition = m_vSavedOriginalTextBoxPosition;

        if (m_oRedTambourineAreaInfo.instrumentHighlight != null)
        {
            m_oRedTambourineAreaInfo.instrumentHighlight.gameObject.SetActive(false);
        }
        if (m_oBlueTambourineAreaInfo.instrumentHighlight != null)
        {
            m_oBlueTambourineAreaInfo.instrumentHighlight.gameObject.SetActive(false);
        }
        if (m_oGreenTambourineAreaInfo.instrumentHighlight != null)
        {
            m_oGreenTambourineAreaInfo.instrumentHighlight.gameObject.SetActive(false);
        }
        if (m_oTambourineJingleInfo.instrumentHighlight != null)
        {
            m_oTambourineJingleInfo.instrumentHighlight.gameObject.SetActive(false);
        }
    }
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //	* Derived method: On Enable
    //----------------------------------------------------
    //	: Checks to make sure that the slider is still in
    //		the correct position
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    protected override void OnEnable()
    {
        base.OnEnable();

        // Place into correct area of slider
        if (m_bSaveOption)
        {
            SetPosition(SavedPreferenceTool.GetFloat(m_sSavedOptionKey, GetPercentage()));
        }
    }
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //	* Derived Method: Start
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    protected override void Start()
    {
        base.Start();
        KeepPressedEvenWithNoContact = true;

        // If saving the slider into an external save system
        if (m_bSaveOption)
        {
            SetPosition(SavedPreferenceTool.GetFloat(m_sSavedOptionKey, GetPercentage()));
        }
    }
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //	* Derived Method: On Enable
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    protected override void OnEnable()
    {
        base.OnEnable();

        float newTambSize = 0.731f;

        m_bPriorTambTargetsVisible = m_rInstrumentManager.InstrumentColoursManager.Visible;
        m_ePriorInstrumentMode     = (InstrumentManager.InstrumentMode)SavedPreferenceTool.GetInt("InstrumentMode");
        m_fPriorShakeSensitivity   = SavedPreferenceTool.GetFloat("SensitivityPreference", 1.0f);
        m_fPriorInstrumentSize     = SavedPreferenceTool.GetFloat("SizePreference", newTambSize);

        m_rInstrumentManager.CurrentInstrumentMode = InstrumentManager.InstrumentMode.RIQ_TAMBOURINE;
        m_rShakeDetector.ShakeSensitivity          = 1.0f;
        m_rTambourineZoomHandler.SetValue(newTambSize);
    }