/// <summary> /// 更新奖励列表 /// </summary> /// <param name="mission">任务数据</param> /// <param name="rewardBox">奖励容器</param> private void UpdateRewardList(MissionVO mission, Transform rewardBox) { CfgEternityProxy configs = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy; m_RewardIDs.Clear(); m_RewardCounts.Clear(); MissionMain cfg = mission.MissionMainConfig.Value; if (cfg.ItemId1 > 0) { m_RewardIDs.Add(cfg.ItemId1); m_RewardCounts.Add(cfg.ItemNum1); } if (cfg.ItemId2 > 0) { m_RewardIDs.Add(cfg.ItemId2); m_RewardCounts.Add(cfg.ItemNum2); } if (cfg.ItemId3 > 0) { m_RewardIDs.Add(cfg.ItemId3); m_RewardCounts.Add(cfg.ItemNum3); } if (cfg.ItemId4 > 0) { m_RewardIDs.Add(cfg.ItemId4); m_RewardCounts.Add(cfg.ItemNum4); } if (cfg.ItemId5 > 0) { m_RewardIDs.Add(cfg.ItemId5); m_RewardCounts.Add(cfg.ItemNum5); } int index = 0; for (; index < m_RewardIDs.Count; index++) { int itemID = m_RewardIDs[index]; int itemCount = m_RewardCounts[index]; Item item = configs.GetItemByKey((uint)m_RewardIDs[index]); Transform node = index < rewardBox.childCount ? rewardBox.GetChild(index) : Object.Instantiate(rewardBox.GetChild(0), rewardBox); Image icon = FindComponent <Image>(node, "Icon/Icon"); Image quality = FindComponent <Image>(node, "Icon/Quality"); TMP_Text name = FindComponent <TMP_Text>(node, "Label_Name"); TMP_Text count = FindComponent <TMP_Text>(node, "Label_Num"); node.gameObject.SetActive(true); UIUtil.SetIconImageSquare(icon, item.Icon); quality.color = ColorUtil.GetColorByItemQuality(item.Quality); name.text = TableUtil.GetItemName(itemID); count.text = itemCount.ToString(); } for (; index < rewardBox.childCount; index++) { rewardBox.GetChild(index).gameObject.SetActive(false); } }
/// <summary> /// 添加奖励icon /// </summary> private void AddRewardItemIcon() { MissionMain cfg = m_MissionVO.MissionMainConfig.Value; if (cfg.ItemId1 > 0 && !m_RewardInfo.ContainsKey(cfg.ItemId1)) { m_RewardInfo.Add(cfg.ItemId1, cfg.ItemNum1); } if (cfg.ItemId2 > 0 && !m_RewardInfo.ContainsKey(cfg.ItemId2)) { m_RewardInfo.Add(cfg.ItemId2, cfg.ItemNum2); } if (cfg.ItemId3 > 0 && !m_RewardInfo.ContainsKey(cfg.ItemId3)) { m_RewardInfo.Add(cfg.ItemId3, cfg.ItemNum3); } if (cfg.ItemId4 > 0 && !m_RewardInfo.ContainsKey(cfg.ItemId4)) { m_RewardInfo.Add(cfg.ItemId4, cfg.ItemNum4); } if (cfg.ItemId5 > 0 && !m_RewardInfo.ContainsKey(cfg.ItemId5)) { m_RewardInfo.Add(cfg.ItemId5, cfg.ItemNum5); } foreach (var item in m_RewardInfo) { if (item.Value > 0 && item.Key > 0) { Item it = m_CfgEternityProxy.GetItemByKey((uint)item.Key); IconManager.Instance.LoadItemIcon <IconCommon>(IconConstName.ICON_COMMON, m_RewardsContainer, (icon) => { m_IconList.Add(icon); icon.SetData(it.Icon, it.Quality, item.Value); } ); } } }