private void Update()
		{
			if (state == ShowAndHideState.IsHiding)
			{
				fadeTime -= Time.deltaTime;

				if (fadeTime <= 0)
				{
					fadeTime = 0;
					state = ShowAndHideState.Hidden;

					ApplyAmplitude(0);
					EnableComponents(false);
				}
				else
				{
					ApplyAmplitude(amplitude);
				}
			}
			else if (state == ShowAndHideState.IsShowing)
			{
				fadeTime += Time.deltaTime;
				if (fadeTime >= fadeDuration)
				{
					fadeTime = fadeDuration;
					state = ShowAndHideState.Shown;

					ApplyAmplitude(1.0f);
				}
				else
				{
					ApplyAmplitude(amplitude);
				}
			}
		}
        private void Update()
        {
            if (state == ShowAndHideState.IsHiding)
            {
                fadeTime -= Time.deltaTime;

                if (fadeTime <= 0)
                {
                    fadeTime = 0;
                    state    = ShowAndHideState.Hidden;

                    ApplyAmplitude(0);
                    EnableComponents(false);
                }
                else
                {
                    ApplyAmplitude(amplitude);
                }
            }
            else if (state == ShowAndHideState.IsShowing)
            {
                fadeTime += Time.deltaTime;
                if (fadeTime >= fadeDuration)
                {
                    fadeTime = fadeDuration;
                    state    = ShowAndHideState.Shown;

                    ApplyAmplitude(1.0f);
                }
                else
                {
                    ApplyAmplitude(amplitude);
                }
            }
        }
 public void Hide()
 {
     if (state == ShowAndHideState.Shown)
     {
         fadeTime = fadeDuration;
         state    = ShowAndHideState.IsHiding;
     }
     else if (state == ShowAndHideState.IsShowing)
     {
         state = ShowAndHideState.IsHiding;
     }
 }
        // ================================================================================
        //  public methods
        // --------------------------------------------------------------------------------

        public void Show()
        {
            if (state == ShowAndHideState.Hidden)
            {
                fadeTime = 0;
                state    = ShowAndHideState.IsShowing;

                EnableComponents(true);
                ApplyAmplitude(0);
            }
            else if (state == ShowAndHideState.IsHiding)
            {
                state = ShowAndHideState.IsShowing;
            }
        }
		public void Hide()
		{
			if (state == ShowAndHideState.Shown)
			{
				fadeTime = fadeDuration;
				state = ShowAndHideState.IsHiding;
			}
			else if (state == ShowAndHideState.IsShowing)
			{
				state = ShowAndHideState.IsHiding;
			}
		}
		// ================================================================================
		//  public methods
		// --------------------------------------------------------------------------------

		public void Show()
		{
			if (state == ShowAndHideState.Hidden)
			{
				fadeTime = 0;
				state = ShowAndHideState.IsShowing;

				EnableComponents(true);
				ApplyAmplitude(0);
			}
			else if (state == ShowAndHideState.IsHiding)
			{
				state = ShowAndHideState.IsShowing;
			}
		}