public Window GetWindow(WndID wndID) { Window wnd = null; m_dicWnd.TryGetValue(wndID, out wnd); return(wnd); }
public bool OpenWindow(WndID wndID, object param = null) { Type type; if (!m_dicRegWnd.TryGetValue(wndID, out type)) { return(false); } Window wnd = System.Activator.CreateInstance(type) as Window; string path = "Prefabs/UI/" + type.ToString(); GameObject prefabe = Resources.Load(path) as GameObject; if (prefabe == null) { return(false); } GameObject wndCtrl = GameObject.Instantiate(prefabe); wndCtrl.transform.SetParent(m_uiRoot); wndCtrl.transform.localPosition = Vector3.zero; wndCtrl.transform.localScale = Vector3.one; wndCtrl.layer = LayerMask.NameToLayer("UI"); wnd.Init(wndID, wndCtrl); wnd.OnCreate(param); m_dicWnd.Add(wndID, wnd); return(true); }
public void Init(WndID wndID, GameObject wndCtrl) { m_wndID = wndID; m_wndCtrl = wndCtrl; InitCtrl(m_wndCtrl.transform); Register(); }
// 将升星前后的英雄属性赋值,并显示出来 public void setHeroUpStarInfo(cmd_entity_hero_diff_expend cmdInfo) { WndID wndID = GetUIWnd().GetID(); heroIcon.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, wndID, 1, 3, cmdInfo.nHeroID); if (heroIcon.sprite == null) { heroIcon.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, wndID, 1, 3, 10); } int nHeroStar = cmdInfo.nStarLv; heroStarItem.SetData(cmdInfo.nHeroID, nHeroStar, false, true); heroName.text = cmdInfo.chHeroName; if (cmdInfo.nHaveGold < cmdInfo.nExpedGold) { expendGold.text = "金币 " + cmdInfo.nExpedGold.ToString() + "(现有:<color=red>" + cmdInfo.nHaveGold.ToString() + "</color>)"; } else { expendGold.text = "金币 " + cmdInfo.nExpedGold.ToString() + "(现有:" + cmdInfo.nHaveGold.ToString() + ")"; } if (cmdInfo.nHaveCardCount < cmdInfo.nExpendCard) { expendCard.text = "荣誉勋章 " + cmdInfo.nExpendCard.ToString() + "(现有:<color=red>" + cmdInfo.nHaveCardCount.ToString() + "</color>)"; } else { expendCard.text = "荣誉勋章 " + cmdInfo.nExpendCard.ToString() + "(现有:" + cmdInfo.nHaveCardCount.ToString() + ")"; } heroLvLimitFront.text = cmdInfo.nLimitLv.ToString(); heroLvLimitBack.text = cmdInfo.nLimitLvAdd == 0 ? "" : ("+" + cmdInfo.nLimitLvAdd.ToString()); for (int i = 0; i < UDefines.PROPERTY_COUNT; ++i) { if (i >= 2) { Hp[i].text = (cmdInfo.fHP[i] == 0 ? "" : ("+" + cmdInfo.fHP[i].ToString("F2"))); PhysicAttack[i].text = (cmdInfo.fPA[i] == 0 ? "" : ("+" + cmdInfo.fPA[i].ToString("F2"))); PhysicDef[i].text = (cmdInfo.fPD[i] == 0 ? "" : ("+" + cmdInfo.fPD[i].ToString("F2"))); Mp[i].text = (cmdInfo.fMagic[i] == 0 ? "" : ("+" + cmdInfo.fMagic[i].ToString("F2"))); MagicAttack[i].text = (cmdInfo.fMA[i] == 0 ? "" : ("+" + cmdInfo.fMA[i].ToString("F2"))); MagicDef[i].text = (cmdInfo.fMD[i] == 0 ? "" : ("+" + cmdInfo.fMD[i].ToString("F2"))); } else { Hp[i].text = cmdInfo.fHP[i].ToString(); PhysicAttack[i].text = cmdInfo.fPA[i].ToString(); PhysicDef[i].text = cmdInfo.fPD[i].ToString(); Mp[i].text = cmdInfo.fMagic[i].ToString(); MagicAttack[i].text = cmdInfo.fMA[i].ToString(); MagicDef[i].text = cmdInfo.fMD[i].ToString(); } } nHeroID = cmdInfo.nHeroID; }
public void CloseWindow(WndID wndID) { Window wnd; if (m_dicWnd.TryGetValue(wndID, out wnd)) { wnd.Destroy(); m_dicWnd.Remove(wndID); } }
// 获取窗口 public IUIWnd GetWnd(WndID id) { IUIWnd wnd; if (m_wndList.TryGetValue(id, out wnd) == false) { return(null); } return(wnd); }
// 给指定窗口发消息 public void SendTargetWndMessage(WndID id, WndMsgID msgID, UIMsgData data) { IUIWnd wnd = GetWnd(id); if (wnd == null) { return; } wnd.OnMessage(msgID, data); }
// 获取窗口显示状态 public bool IsWndVisible(WndID id) { IUIWnd wnd = GetWnd(id); if (wnd == null) { return(false); } return(wnd.IsVisible()); }
// 显示/隐藏窗口 public bool ShowWnd(WndID id, bool bShow) { IUIWnd wnd = GetWnd(id); if (wnd == null) { return(false); } wnd.SetVisible(bShow); return(true); }
public NOD_SendTargetWndMessage(WndID _eGuideActionWnd, WndMsgID _eMsgID, UIMsgData _widgetMsgData = null) { m_eGuideActonWnd = _eGuideActionWnd; m_eGuideActionMsgID = _eMsgID; m_widgetMsgData = _widgetMsgData; }
private void ShowSubWnd(WndID _eWndID) { }
public Sprite GetIconByPrize(SSchemeActorPrizeConfig prizeConfig, WndID wndID) { if (prizeConfig == null) { return(null); } Sprite sprite = null; switch (prizeConfig.nPrizeType) { case (int)EMActorPrizeType.ACTOR_PRIZE_HERO: { int iconIndex; if (wndID == WndID.WND_ID_MAILBOX) { iconIndex = 4; } else { iconIndex = 3; } sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, wndID, 1, iconIndex, prizeConfig.nPrizeParam[0]); } break; case (int)EMActorPrizeType.ACTOR_PRIZE_HEROCARD: { int iconIndex; if (wndID == WndID.WND_ID_MAILBOX) { iconIndex = 4; } else { iconIndex = 7; } sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, wndID, 1, iconIndex, prizeConfig.nPrizeParam[0]); } break; case (int)EMActorPrizeType.ACTOR_PRIZE_RUNE: { SSchemeRuneConfig runeConfig = RunePage.Instance.allRunePageTable[prizeConfig.nPrizeParam[0]] as SSchemeRuneConfig; if (runeConfig != null) { sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_Rune, wndID, runeConfig.nRuneInlayType, runeConfig.nRuneIconId); } } break; case (int)EMActorPrizeType.ACTOR_PRIZE_HEROSKIN: { SkinInfoScheme skinConfig = new SkinInfoScheme(); if (GameLogicAPI.GetHeroSkinInfo(prizeConfig.nPrizeParam[1], ref skinConfig)) { sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, wndID, skinConfig.nSkinIconID, 3, prizeConfig.nPrizeParam[0]); } } break; default: { sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_ActorPrize, wndID, prizeConfig.nPrizeType, prizeConfig.nPrizeIcon); } break; } return(sprite); }
public void RegisterWnd <T>(WndID wndID) { m_dicRegWnd.Add(wndID, typeof(T)); }
// 初始化 public bool Start() { m_canvas = GetComponent <Canvas>(); InitUICamera(); InitLayer(); m_raycaster = GetComponent <GraphicRaycaster>(); m_wndList = new Dictionary <WndID, IUIWnd>(); m_messageList = new Dictionary <WndMsgID, List <IUIWnd> >(); m_keyMessageList = new Dictionary <FuntionShortCutSlotIndex, List <IUIWnd> > [(int)KeyStatus.Max]; for (int i = 0; i < m_keyMessageList.Length; ++i) { m_keyMessageList[i] = new Dictionary <FuntionShortCutSlotIndex, List <IUIWnd> >(); } if (Instance == null) { // 单独调试场景,不创建其他窗口 Instance = this; return(true); } //删除载入等待UI GameObject waitingloadUI = GameObject.Find("Canvas"); if (waitingloadUI) { DestroyImmediate(waitingloadUI, true); } foreach (IUIWnd wnd in UWindowWnd.CreateWindowWnd())//CreateAllWindow()) { WndID id = wnd.GetID(); if (m_wndList.ContainsKey(id)) { Debug.LogError("UISystem 重复初始化窗口, id=" + id); return(false); } if ((wnd.GetLoadMask() & (int)WndLoadMaskDef.WND_LoadMask_All) != 0 && (wnd.GetPermissionMask() & (int)WndPermissionMaskDef.WND_PM_All) != 0) { if (!wnd.InitFinish() && wnd.Init() == false) { Debug.LogError("UISystem 窗口初始化失败, id=" + id); return(false); } } m_wndList[id] = wnd; } #region 字体花屏处理 Font.textureRebuilt += OnFontTextureRebuilt; System.Type fontUpdateTrackerType = typeof(UnityEngine.UI.FontUpdateTracker); m_RebuildForFont = fontUpdateTrackerType.GetMethod("RebuildForFont", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static); #endregion return(true); }
public CON_IsWndViewVisible(bool _bCheckVisibleState, WndID _eWndID) { m_bCheckVisibleState = _bCheckVisibleState; m_eWndID = _eWndID; }