Beispiel #1
0
    public void RegistWindow(string name, BaseWindow bw)
    {
        UIWindowConfig config = UIWindowConfigProvider.Instance.GetData(name);

        bw.SetConfigData(config);
        bw.Init();

        // 加入管理队列和栈
        mManagedWindows.Add(bw);
        bw.OnShow();
        PushShowingStack(bw);
    }
Beispiel #2
0
 /// <summary>
 /// 设置窗口配置数据
 /// </summary>
 /// <param name="data">Data.</param>
 public void SetConfigData(UIWindowConfig data)
 {
     mConfigData = data;
 }
Beispiel #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BaseWindow"/> class.
 /// </summary>
 public BaseWindow()
 {
     mRegisteredEvents = new List <EventId> ();
     langList          = new List <UILabel>();
     mConfigData       = null;
 }
Beispiel #4
0
    /// <summary>
    /// 显示窗口
    /// tips:检查是否是隐藏
    /// </summary>
    /// <param name="name">Name.</param>
    public void ShowWindow(string name)
    {
                #if !SERVER
        // 判断是否是隐藏,如果隐藏,则设置显示,如果已经显示,则不操作
        BaseWindow bw = GetWindow(name);
        if (bw != null)
        {
            if (!IsWindowVisible(bw))
            {
                bw.gameObject.SetActive(true);
                bw.OnShow();
                PushShowingStack(bw);
            }

            // cancel 掉fade流程
            //TweenAlpha ta = bw.gameObject.GetComponent<TweenAlpha>();
            //if (ta != null)
            //{
            //    ta.ResetToBeginning();
            //    ta.value = 1.0f;
            //    ta.enabled = false;
            //}

            TweenAlpha ta = bw.gameObject.GetComponent <TweenAlpha>();
            if (ta == null)
            {
                ta = bw.gameObject.AddComponent <TweenAlpha>();
            }
            ta.enabled = true;
            ta.ResetToBeginning();
            ta.from     = 0;
            ta.to       = 1;
            ta.duration = 0.5f;
            ta.SetOnFinished(() =>
            {
                ta.value   = 1.0f;
                ta.enabled = false;
            });
            ta.Play(true);
            return;
        }

        // 获得外部配置数据
        UIWindowConfig config = UIWindowConfigProvider.Instance.GetData(name);
        if (config == null || string.IsNullOrEmpty(config.mPrefabPath))
        {
            Debug.LogErrorFormat("UISystem_ShowWindow : {0}'s prefab config is null!", name);
            return;
        }

        // 加载prefab,实例化,挂载至root点
        //GameObject prefab = Resources.Load(config.mPrefabPath) as GameObject;
        GameObject prefab = AssetManager.Get().LoadResource(config.mPrefabPath) as GameObject;
        if (null == prefab)
        {
            Debug.LogErrorFormat("UISystem_ShowWindow : {0}'s prefab cannot Load!", name);
            return;
        }

        prefab = UnityTools.AddChild(mUICamera.gameObject, prefab);

        // 获得BaseWindow对象,调用Init
        bw = prefab.GetComponent <BaseWindow>();
        if (bw == null)
        {
            Debug.LogErrorFormat("UISystem_ShowWindow : {0} can't get BaseWindow component from prefab!", name);
            return;
        }
        bw.SetConfigData(config);
        if (!bw.Init())
        {
            Debug.LogErrorFormat("UISystem_ShowWindow : {0}'s BaseWindow init failed!", name);
            return;
        }

        {
            TweenAlpha ta = bw.gameObject.GetComponent <TweenAlpha>();
            if (ta == null)
            {
                ta = bw.gameObject.AddComponent <TweenAlpha>();
            }
            ta.enabled = true;
            ta.ResetToBeginning();
            ta.from     = 0;
            ta.to       = 1;
            ta.duration = 0.5f;
            ta.SetOnFinished(() =>
            {
                ta.value   = 1.0f;
                ta.enabled = false;
            });
            ta.Play(true);
        }


        // 加入管理队列和栈
        mManagedWindows.Add(bw);
        bw.OnShow();
        PushShowingStack(bw);

        //Resources.UnloadUnusedAssets ();
        //System.GC.Collect ();
                #endif
    }