private string GetPrefabUIName(eFloatUIType type)
    {
        string name = "";

        switch (type)
        {
        case eFloatUIType.BuildingTip:
            name = "FloatUIBuilding_tip";
            break;

        case eFloatUIType.TutorialArrow:
            name = "FloatUITutorialArrow";
            break;

        case eFloatUIType.TutorialArrow2:
            name = "FloatUITutorialArrow2";
            break;

        case eFloatUIType.TutorialArrowMainCore:
            name = "FloatUITutorialArrowMainCore";
            break;

        case eFloatUIType.BuildingTipForDebug:
            name = "FloatUIBuilding_tipForDebug";
            break;

        default:
            break;
        }
        return(name);
    }
    public T AddPopupUI <T>(eFloatUIType type)
        where T : FloatUIHandlerBase
    {
        // only one instance globally
        if (type == eFloatUIType.Example)
        {
            if (mMonoFloatUIDic.ContainsKey(type))
            {
                // mMonoFloatUIDic[type].SetTargetTransform(t);
                return((T)mMonoFloatUIDic[type]);
            }
            else
            {
                string             name    = PATH_PREFIX + GetPrefabUIName(type);
                GameObject         prefab  = Resources.Load(name) as GameObject;
                GameObject         obj     = GameObject.Instantiate(prefab) as GameObject;
                FloatUIHandlerBase handler = obj.GetComponent <FloatUIHandlerBase>();
                if (handler)
                {
                    handler.Init();
                    // handler.SetTargetTransform(t);
                    mMonoFloatUIDic.Add(type, handler);
                }
                return((T)handler);
            }
        }
        // more than one instance
        else
        {
            string             name    = PATH_PREFIX + GetPrefabUIName(type);
            GameObject         prefab  = Resources.Load(name) as GameObject;
            GameObject         obj     = GameObject.Instantiate(prefab) as GameObject;
            FloatUIHandlerBase handler = obj.GetComponent <FloatUIHandlerBase>();
            if (handler)
            {
                handler.Init();
            }
            //  handler.SetTargetTransform(t, false);

            return((T)handler);
        }
    }