/// <summary>
    /// 加载场景UI
    /// </summary>
    /// <param name="type"></param>
    /// <returns></returns>
    public GameObject LoadSceneUI(SceneUIType type, Action OnLoadComplete = null)
    {
        GameObject obj = null;

        switch (type)
        {
        case SceneUIType.LogOn:
            obj            = ResourcesMgr.Instance.Load(ResourcesMgr.ResourceType.UIScene, "UI_Root_Logon");
            CurrentUIScene = obj.GetComponent <UISceneViewBase>();
            break;

        case SceneUIType.Loading:
            break;

        case SceneUIType.SelectRole:
            obj            = ResourcesMgr.Instance.Load(ResourcesMgr.ResourceType.UIScene, "UI_Root_SelectRole");
            CurrentUIScene = obj.GetComponent <UISceneViewBase>();
            break;

        case SceneUIType.MainCity:
            obj            = ResourcesMgr.Instance.Load(ResourcesMgr.ResourceType.UIScene, "UI_Root_MainCity");
            CurrentUIScene = obj.GetComponent <UISceneViewBase>();
            break;
        }

        CurrentUIScene.OnLoadComplete = OnLoadComplete;
        return(obj);
    }
Beispiel #2
0
 /// <summary>
 /// 关闭场景UI
 /// </summary>
 /// <param name="type"></param>
 public void CloseSceneUI(SceneUIType type)
 {
     if (sceneUIDic.ContainsKey(type))
     {
         sceneUIDic[type].SetActive(false);
     }
 }
Beispiel #3
0
    public Transform currentUIWindow;                                                                        //当前UI界面
    /// <summary>
    /// 显示场景UI
    /// </summary>
    /// <param name="type"></param>
    /// <returns></returns>
    public GameObject ShowSceneUI(SceneUIType type)
    {
        GameObject go = null;

        if (!sceneUIDic.ContainsKey(type))
        {
            //枚举名称要与预设名称对应
            go = ResourcesManager.Instance.Load(ResourceType.SceneUI, type.ToString());
            if (go == null)
            {
                return(null);
            }

            sceneUIDic.Add(type, go);

            go.transform.parent        = sceneUIParent;
            go.transform.localPosition = Vector3.zero;
            go.transform.localScale    = Vector3.one;
            go.transform.eulerAngles   = Vector3.zero;
        }
        else
        {
            go = sceneUIDic[type];
        }

        go.SetActive(true);
        return(go);
    }
Beispiel #4
0
    /// <summary>
    /// 同步加载场景UI(Resources)
    /// </summary>
    /// <param name="type"></param>
    /// <returns></returns>
    public GameObject LoadSceneUIFromResouces(SceneUIType type, OnInitComplete onInitComplete = null)
    {
        GameObject obj = ResourcesManager.Instance.Load(ResourceType.UIScene, string.Format("UI_Root_{0}", type));

        CurrentUIScene = obj.GetComponent <UISceneViewBase>();
        CurrentUIScene.OnInitComplete = onInitComplete;
        return(obj);
    }
Beispiel #5
0
    /// <summary>
    /// 加载场景UI
    /// </summary>
    /// <param name="type"></param>
    /// <returns></returns>
    public void LoadSceneUI(SceneUIType type, System.Action <GameObject> OnLoadComplete, XLuaCustomExport.OnCreate OnCreate = null, string path = null)
    {
        string strUIName = string.Empty;

        string newPath = string.Empty;

        if (type != SceneUIType.None)
        {
            switch (type)
            {
            case SceneUIType.LogOn:
                strUIName = "UI_Root_LogOn";
                break;

            case SceneUIType.SelectRole:
                strUIName = "UI_Root_SelectRole";
                break;

            case SceneUIType.Loading:
                break;

            case SceneUIType.MainCity:
                strUIName = "UI_Root_MainCity";
                break;
            }

            newPath = string.Format("Download/Prefab/UIPrefab/UIScene/{0}.assetbundle", strUIName);
        }
        else
        {
            newPath = path;
        }

        AssetBundleMgr.Instance.LoadOrDownload(newPath, strUIName, (GameObject obj) =>
        {
            obj            = Object.Instantiate(obj);
            CurrentUIScene = obj.GetComponent <UISceneViewBase>();

            if (OnLoadComplete != null)
            {
                OnLoadComplete(obj);
            }

            if (OnCreate != null)
            {
                //此时表示 是从Lua中加载的
                obj.GetOrCreatComponent <LuaViewBehaviour>();
                OnCreate(obj);
            }
        });
    }
Beispiel #6
0
    /// <summary>
    /// 异步加载场景UI(Assetbundle)
    /// </summary>
    /// <param name="type"></param>
    /// <param name="onLoadComplete">加载完毕回调</param>
    /// <param name="onInitComplete">场景UI初始化完毕回调</param>
    public void LoadSceneUIAsync(SceneUIType type, OnLoadComplete onLoadComplete, OnInitComplete onInitComplete = null)
    {
        string strUIName = string.Format("ui_root_{0}", type.ToString().ToLower());
        string path      = string.Format("download/{0}/prefab/uiprefab/uiscenes/{1}.drb", ConstDefine.GAME_NAME, strUIName);

        Debug.Log("打开场景UI: " + strUIName);

        AssetBundleManager.Instance.LoadOrDownload(path, strUIName, (GameObject go) =>
        {
            Debug.Log("场景UI资源加载完毕");
            go             = UnityEngine.Object.Instantiate(go);
            CurrentUIScene = go.GetComponent <UISceneViewBase>();
            CurrentUIScene.OnInitComplete = onInitComplete;
            if (onLoadComplete != null)
            {
                onLoadComplete(go);
            }
        });
    }
Beispiel #7
0
    /// <summary>
    /// 加载场景UI
    /// </summary>
    /// <param name="type"></param>
    /// <returns></returns>
    public GameObject LoadSceneUI(SceneUIType type)
    {
        GameObject obj = null;

        switch (type)
        {
        case SceneUIType.LogOn:
            obj            = ResourceMgr.Instance.Load(ResourceMgr.ResourceType.UIScene, "UI_Root_LogOn");
            CurrentUIScene = obj.GetComponent <UISceneLogonCtrl>();
            break;

        case SceneUIType.Loading:
            break;

        case SceneUIType.MainCity:
            obj            = ResourceMgr.Instance.Load(ResourceMgr.ResourceType.UIScene, "UI Root_City");
            CurrentUIScene = obj.GetComponent <UISceneCityCtrl>();
            break;
        }
        return(obj);
    }
Beispiel #8
0
    /// <summary>
    /// 场景UI加载
    /// </summary>
    /// <param name="type"></param>
    /// <returns></returns>
    public GameObject LoadSceneUI(SceneUIType type)
    {
        GameObject go = null;

        switch (type)
        {
        case SceneUIType.LogOn:
            go             = ResourcesMgr.Instance.Load(ResourcesType.UIScene, "UIRoot_LogOnScene");
            currentUIScene = go.GetComponent <SceneLogOnCtrl>();
            break;

        case SceneUIType.Loading:
            break;

        case SceneUIType.MainCity:
            go             = ResourcesMgr.Instance.Load(ResourcesType.UIScene, "UIRoot_MainCity");
            currentUIScene = go.GetComponent <SceneMainCityCtrl>();
            break;
        }

        return(go);
    }
Beispiel #9
0
    /// <summary>
    /// 同步加载场景UI(Assetbundle)
    /// </summary>
    /// <param name="type"></param>
    /// <param name="onInitComplete"></param>
    /// <returns></returns>
    public GameObject LoadSceneUIFromAssetBundle(SceneUIType type, OnInitComplete onInitComplete = null)
    {
        foreach (KeyValuePair <SceneUIType, UISceneViewBase> pair in m_UISceneDic)
        {
            if (pair.Value != null)
            {
                pair.Value.gameObject.SetActive(false);
            }
        }

        GameObject ret = null;

        if (m_UISceneDic.ContainsKey(type) && m_UISceneDic[type] != null)
        {
            CurrentUIScene = m_UISceneDic[type];
            CurrentUIScene.gameObject.SetActive(true);
            ret = CurrentUIScene.gameObject;
        }
        else
        {
            string strUIName = string.Format("ui_root_{0}", type.ToString().ToLower());
            string path      = string.Format("download/{0}/prefab/uiprefab/uiscenes/{1}.drb", ConstDefine.GAME_NAME, strUIName);
            Debug.Log("打开场景UI: " + strUIName);
            float time = Time.realtimeSinceStartup;
            ret = AssetBundleManager.Instance.LoadAssetBundle <GameObject>(path, strUIName);
            Debug.Log("加载场景UI资源耗时" + (Time.realtimeSinceStartup - time).ToString() + "秒");
            ret            = UnityEngine.Object.Instantiate(ret);
            CurrentUIScene = ret.GetComponent <UISceneViewBase>();
            if (CurrentUIScene.persistenceType == UIScenePersistenceType.LoadSceneHide)
            {
                UnityEngine.Object.DontDestroyOnLoad(ret);
            }

            m_UISceneDic[type]            = CurrentUIScene;
            CurrentUIScene.OnInitComplete = onInitComplete;
        }
        return(ret);
    }
Beispiel #10
0
    public GameObject LoadSceneUI(SceneUIType type)
    {
        GameObject obj = null;

        switch (type)
        {
        case SceneUIType.LOGIN:
            obj = ResourcesManager.Instance.
                  Load(ResourcesManager.ResourceType.UI_SCENE, "UIRoot_Login");
            currentScene = obj.GetComponent <Leo_UISceneLoginController>();
            break;

        case SceneUIType.LOADING:
            break;

        case SceneUIType.MAIN:
            obj = ResourcesManager.Instance.
                  Load(ResourcesManager.ResourceType.UI_SCENE, "UIRoot_Main");
            currentScene = obj.GetComponent <Leo_UISceneMainController>();
            break;
        }

        return(obj);
    }