public CampDetailUI_DetailItemUI GetInstance() { CampDetailUI_DetailItemUI instance = null; if (mCachedInstances != null) { while ((instance == null || instance.Equals(null)) && mCachedInstances.Count > 0) { instance = mCachedInstances.Dequeue(); } } if (instance == null || instance.Equals(null)) { instance = Instantiate <CampDetailUI_DetailItemUI>(m_DetailItemUI); } Transform t0 = m_DetailItemUI.transform; Transform t1 = instance.transform; t1.SetParent(t0.parent); t1.localPosition = t0.localPosition; t1.localRotation = t0.localRotation; t1.localScale = t0.localScale; t1.SetSiblingIndex(t0.GetSiblingIndex() + 1); return(instance); }
private void InitNode() { int notFreshNum = 0; int freshNum = 0; //计算可生成npc总数 foreach (ItemDTO itemDTO in Global.gApp.gSystemMgr.GetNpcMgr().NpcMap.Values) { ItemItem itemCfg = Global.gApp.gGameData.ItemData.Get(itemDTO.itemId); CampNpcItem npcItem = Global.gApp.gGameData.CampNpcConfig.Get(itemCfg.name); if (npcItem.notFresh != 1) { notFreshNum += Convert.ToInt32(itemDTO.num); } else { freshNum += Convert.ToInt32(itemDTO.num); } } int campLevel = Global.gApp.gSystemMgr.GetNpcMgr().CalCampLevel(); string[] maxNpcNum = Global.gApp.gGameData.GeneralConfigData.Get(GeneralConfigConstVal.CAMP_MAX_NUM).contents; string[] levelName = Global.gApp.gGameData.GeneralConfigData.Get(GeneralConfigConstVal.CAMP_LEVEL_NAME).contents; string[] levelNameColor = Global.gApp.gGameData.GeneralConfigData.Get(GeneralConfigConstVal.CAMP_LEVEL_NAME_COLOR).contents; LevelText.text.text = Global.gApp.gGameData.GetTipsInCurLanguage(int.Parse(levelName[campLevel - 1])); LevelText.text.color = ColorUtil.GetColor(levelNameColor[campLevel - 1]); Cur.text.text = string.Format(Global.gApp.gGameData.GetTipsInCurLanguage(4391), (notFreshNum + freshNum)); Max.text.text = string.Format(Global.gApp.gGameData.GetTipsInCurLanguage(4392), (int.Parse(maxNpcNum[(campLevel - 1) * 2 + 1]) + Global.gApp.gGameData.NotFreshNpcList.Count)); DetailItemUI.gameObject.SetActive(false); for (int i = maxNpcNum.Length - 1; i >= 0; i -= 2) { CampDetailUI_DetailItemUI itemUI = DetailItemUI.GetInstance(); itemUI.gameObject.SetActive(true); int unlockNum = i == 1 ? 0 : int.Parse(maxNpcNum[i - 2]) + Global.gApp.gGameData.NotFreshNpcList.Count; itemUI.LockText.text.text = string.Format(Global.gApp.gGameData.GetTipsInCurLanguage(4393), unlockNum); itemUI.LockText.gameObject.SetActive(campLevel < (i + 1) / 2); itemUI.DName.text.text = Global.gApp.gGameData.GetTipsInCurLanguage(int.Parse(levelName[(i - 1) / 2])); itemUI.DName.text.color = ColorUtil.GetColor(levelNameColor[(i - 1) / 2]); itemUI.Icon.image.sprite = Global.gApp.gResMgr.LoadAssets <Sprite>(string.Format(CommonResourceConstVal.CAMP_LEVEL, (i + 1) / 2)); Color old = itemUI.Icon.image.color; if ((i + 1) / 2 > campLevel) { old.a = 0.5f; itemUI.Lock.gameObject.SetActive(true); } else { old.a = 1; itemUI.Lock.gameObject.SetActive(false); } itemUI.Icon.image.color = old; } CloseBtn.button.onClick.AddListener(TouchClose); }
public bool CacheInstance(CampDetailUI_DetailItemUI instance) { if (instance == null || instance.Equals(null)) { return(false); } if (mCachedInstances == null) { mCachedInstances = new Queue <CampDetailUI_DetailItemUI>(); } if (mCachedInstances.Contains(instance)) { return(false); } instance.gameObject.SetActive(false); mCachedInstances.Enqueue(instance); return(true); }