/// <summary> /// 刷新数据 /// </summary> public override void RefreshUI() { GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); //刷新列表数据 List <ItemBean> listBuildData = gameData.GetBuildDataByType(buildType); for (int i = 0; i < listBuildItem.Count; i++) { ItemGameBuildCpt itemBuild = listBuildItem[i]; //如果数据已经没有了则删除该项 if (itemBuild.itemData == null || itemBuild.itemData.itemNumber == 0) { listBuildItem.Remove(itemBuild); Destroy(itemBuild.gameObject); i--; } } //如果有新增的数据 foreach (ItemBean itemData in listBuildData) { bool hasData = false; for (int i = 0; i < listBuildItem.Count; i++) { ItemGameBuildCpt itemBuild = listBuildItem[i]; itemBuild.RefreshUI(); if (itemData.itemId == itemBuild.itemData.itemId) { hasData = true; } } if (!hasData) { BuildItemBean buildData = InnBuildHandler.Instance.manager.GetBuildDataById(itemData.itemId); CreateBuildItem(itemData, buildData); tvNull.gameObject.SetActive(false); } } //刷新床列表 for (int i = 0; i < listBuildForBedItem.Count; i++) { ItemGameBuildForBedCpt itemGameBuildForBed = listBuildForBedItem[i]; if (itemGameBuildForBed.buildBedData.isSet) { itemGameBuildForBed.gameObject.SetActive(false); } else { itemGameBuildForBed.gameObject.SetActive(true); } } //刷新美观值 gameData.GetInnAttributesData().SetAesthetics(gameData.GetInnBuildData()); SetInnAesthetics(); SetBedRangeStatus(true); }
/// <summary> /// 创建单个数据 /// </summary> /// <param name="buildBedData"></param> public void CreateBuildForBedItem(BuildBedBean buildBedData) { GameObject itemBuildObj = Instantiate(itemBuildContainer, itemBuildForBedModel); ItemGameBuildForBedCpt itemCpt = itemBuildObj.GetComponent <ItemGameBuildForBedCpt>(); itemCpt.SetData(buildBedData); listBuildForBedItem.Add(itemCpt); if (buildBedData.isSet) { itemBuildObj.SetActive(false); } else { itemBuildObj.SetActive(true); } }