/// <summary>
    /// Freeze action.
    /// </summary>
    public void Freeze(float freezeTime)
    {
        if (!CanDamage)
        {
            return;
        }

        // cannot be freeze.
        if (!mCanFreeze)
        {
            return;
        }

        // freeze x velocity.
        if (VelocityInfo != null)
        {
            VelocityInfo.Freeze();
        }

        LiveObjectAnimator.StopAnimationInFrame();

        spriteRenderer.color = BF_GameSettings.instance.FREEZE_COLOR;

        mFreezeTime = freezeTime;

        mIsFreeze = true;
    }
    /// <summary>
    /// Opposite of freeze effect.
    /// </summary>
    public void UnFreeze()
    {
        if (VelocityInfo != null)
        {
            VelocityInfo.UnFreeze();
        }

        spriteRenderer.color = Color.white;
        mIsFreeze            = false;

        LiveObjectAnimator.PlayAnimationInFrame();
    }