public void UpdateState()
    {
        // Get Distance Apart between Player and Pet //
        m_PetsManager.SetDistanceApart((m_PetsManager.GetPlayer().GetComponent <Transform>().position - m_go.GetComponent <Transform>().position).magnitude);

        if (m_PetsManager.GetPlayer() != null)
        {
            // Pet will walk to Player
            m_go.GetComponent <Transform>().position = Vector2.MoveTowards(m_go.GetComponent <Transform>().position, m_PetsManager.GetPlayer().GetComponent <Transform>().position, Time.deltaTime * (m_PetsManager.MoveSpeed * 0.4f));

            if (m_PetsManager.GetDistanceApart() <= m_PetsManager.GetHealRange())
            {
                m_bHasHeal = false;
            }

            if (!m_bHasHeal)
            {
                // Count Down
                m_fHealTimer -= Time.deltaTime;

                if (m_fHealTimer <= 0f)
                {
                    m_fHealTimer = 5f;

                    // Heal Player
                    m_bHasHeal = true;
                }
            }

            // Change State to GUARD when it has Healed Finish.
            if (m_bHasHeal)
            {
                // Heal Player
                if (m_PetsManager.GetPlayerStats().Health != m_PetsManager.GetPlayerStats().MaxHealth)
                {
                    // Increase Player HP
                    m_PetsManager.GetPlayerStats().Health += m_fAddPlayerHP;
                }

                m_bHasHeal = false;
                m_PetsManager.GetStateMachine().SetNextState("StateDeerGuard");
            }
        }
        else
        {
            m_Player = GameObject.FindGameObjectWithTag("Player");
            m_PetsManager.SetPlayer(m_Player);
        }
    }