public static void ShowText(string text, GameObject parent, float duration, bool isFollow = true)
    {
        GameObject go         = FBPoolManager.instance.getPoolObject(TEXT_POPUP, FBPoolManager.POOLTYPE.UI);
        BasePopup  baseScript = go.GetComponent <BasePopup>();

        baseScript.SetValues(parent, isFollow, duration);
        baseScript.SetText(text);
        go.SetActive(true);
        currentPopup = go;
        showedPopup  = true;
    }
    public static GameObject ShowTimer(string dialogName, float duration, GameObject parentObj, bool isFollow = true)
    {
        GameObject go         = FBPoolManager.instance.getPoolObject(dialogName, FBPoolManager.POOLTYPE.UI);
        BasePopup  baseScript = go.GetComponent <BasePopup>();

        baseScript.SetValues(parentObj, isFollow, duration);
        go.SetActive(true);
        // currentPopup = go;
        disableWhenMove = false; //we dont want timer disable when player move  out
        playerPos       = Player.instance.gameObject.transform.position;
        //  showedPopup = true;
        return(go);
    }
    public static GameObject ShowDialogBelongObject(string dialogName, float duration, Transform obj, string markerName, bool isFollow = true, bool _disableWhenMove = true)
    {
        GameObject go         = FBPoolManager.instance.getPoolObject(dialogName, FBPoolManager.POOLTYPE.UI);
        BasePopup  baseScript = go.GetComponent <BasePopup>();

        baseScript.SetValues(null, isFollow, duration);
        Transform parentMarker = obj.transform.findChildRecursively(markerName);

        go.transform.position = parentMarker.transform.position;
        go.SetActive(true);
        currentPopup    = go;
        disableWhenMove = _disableWhenMove;
        playerPos       = Player.instance.gameObject.transform.position;
        showedPopup     = true;
        return(go);
    }
    public static GameObject ShowDialog(string dialogName, float duration, bool isFollow = true, bool _disableWhenMove = true)
    {
        GameObject go         = FBPoolManager.instance.getPoolObject(dialogName, FBPoolManager.POOLTYPE.UI);
        BasePopup  baseScript = go.GetComponent <BasePopup>();

        baseScript.SetValues(null, isFollow, duration);
        Vector3 targetPos = Camera.main.transform.position + Camera.main.transform.forward * 5f;

        targetPos.y           = Player.instance.playerHeight + 0.1f;
        go.transform.position = targetPos;
        go.SetActive(true);
        currentPopup    = go;
        disableWhenMove = _disableWhenMove;
        playerPos       = Player.instance.gameObject.transform.position;
        showedPopup     = true;
        return(go);
    }
    public static BasePopup ShowText(string text, float duration, bool isFollow = true)
    {
        GameObject go         = FBPoolManager.instance.getPoolObject(TEXT_POPUP, FBPoolManager.POOLTYPE.UI);
        BasePopup  baseScript = go.GetComponent <BasePopup>();

        baseScript.SetValues(null, isFollow, duration);
        baseScript.SetText(text);
        Vector3 targetPos = Camera.main.transform.position + Camera.main.transform.forward * 3f;

        targetPos.y           = Player.instance.playerHeight + 1f;
        go.transform.position = targetPos;
        go.SetActive(true);
        currentPopup = go;
        playerPos    = Player.instance.gameObject.transform.position;
        showedPopup  = true;

        return(baseScript);
    }