void AddGoodsToHead() { GameObject goods = new GameObject(); SpriteRenderer _sprite = goods.AddComponent <SpriteRenderer>(); ShopUI _shop = transform.Find("/goodBox").GetComponent <ShopUI>(); CharBag.Goods[] goodslist = _shop.GetGoods(); //如果货架上有商品,则添加道具到背包 if (goodslist[selectgoods.slotID - 1].Name != null && goodslist[selectgoods.slotID - 1].ID != 0) { //移除道具 _shop.BuyedGoods(selectgoods); } _sprite.sprite = Materiral.GetMaterialIcon(selectgoods.goods.MateriralType, selectgoods.goods.ID); _sprite.sortingLayerName = "Character"; //设定道具的为角色的子物件 goods.transform.SetParent(this.transform, false); goods.transform.position = goodsVertor; //把物体移动到头上 LeanTween.move(goods.gameObject, new Vector2(goodsVertor.x, goodsVertor.y + 0.5f), 0.5f); }
public void SetGoodsName(int MaterialType) { //创建物品列表 for (int i = 0; i < _bagList.Count; i++) { CharBag.Goods _map = (CharBag.Goods)_bagList[i]; //筛选物品,特殊物品不显示 if (MaterialType != -1) { if (_map.MateriralType != MaterialType) { continue; } if (_map.MateriralType == 2 && _map.Type == 0) { continue; } } GameObject button = Instantiate(btn_menu); button.transform.SetParent(_fitter.transform, false); button.name = _map.ID.ToString(); button.transform.Find("Text").GetComponent <Text>().text = _map.Name; button.transform.Find("Image").GetComponent <Image>().sprite = Materiral.GetMaterialIcon(_map.MateriralType, _map.ID); //显示数量 button.transform.Find("num").gameObject.SetActive(true); button.transform.Find("num/Text").GetComponent <Text>().text = _map.Number.ToString(); //显示价格 button.transform.Find("PriceBoard").gameObject.SetActive(true); button.transform.Find("PriceBoard/Text").GetComponent <Text>().text = _map.Price.ToString(); //设置参数容器中的参数 Parameter.Box _p = new Parameter.Box(); _p.obj = _map; //设置点击事件 OnClickInScorll.Get(button.transform).parameter = _p; OnClickInScorll.Get(button.transform).onHoldByParameter = ShowMateriralInfo; //添加背包进入筛选背包列表 f_BagList.Add(_map); } //调整列表为置顶 if (f_BagList.Count > 5) { setGird(); } StartCoroutine(SetListToTop()); }
void SetRecipeName() { for (int i = 0; i < recipeMap.ReicipeList.Count; i++) { GameObject button = Instantiate(recipeButton); button.transform.SetParent(_fitter.transform, false); Recipe.RecipeMap _map = (Recipe.RecipeMap)recipeMap.ReicipeList[i]; button.name = _map.ID.ToString(); button.transform.Find("Text").GetComponent <Text>().text = _map.Name; int _t = _map.Target[0].ToString() == "0" ? 0 : 1; int _i = int.Parse(_map.Target.Substring(_map.Target.IndexOf(",") + 1)); button.transform.Find("Image").GetComponent <Image>().sprite = Materiral.GetMaterialIcon(_t, _i); //设置点击事件 //button.GetComponent<Button>().onClick.AddListener(OpenRecipe); OnClickInScorll.Get(button.transform).onClick = OpenRecipe; } }
void ShowMaterialIcon(CharBag.Goods goods, RectTransform rect) { //显示采集到的素材图标 GameObject materiralicon = new GameObject(); Image sr = materiralicon.AddComponent <Image>(); sr.sprite = Materiral.GetMaterialIcon(goods.MateriralType, goods.ID); materiralicon.transform.position = rect.position; materiralicon.transform.SetParent(MateriralList.Find("ListBox"), false); materiralicon.transform.localScale = new Vector3(1, 1, 1); materiralicon.GetComponent <RectTransform>().sizeDelta = new Vector2(50, 50); //由路点落到list处 RectTransform er = MateriralList.Find("ListBox").GetComponent <RectTransform>(); LeanTween.moveLocal(materiralicon, new Vector3(er.localPosition.x, er.rect.height, 0), 1f); LeanTween.scale(materiralicon, new Vector3(0, 0, 0), 0.4f).setEase(LeanTweenType.easeInBack).setDestroyOnComplete(true).setOnComplete(() => { StartCoroutine(ShowMateriralInList(goods)); }); }
//上架商品 void ClickInBag(GameObject go, object parameter) { Parameter.Box p = (Parameter.Box)parameter; CharBag.Goods goods = (CharBag.Goods)p.obj; //如果货架上有商品,则添加道具到背包 if (goodslist[p.ID - 1].Name != null && goodslist[p.ID - 1].ID != 0) { CharBag.AddGoods(goodslist[p.ID - 1]); } //添加选中的商品到商品列 goodslist[p.ID - 1] = goods; string path = p.ID.ToString() + "/itemIcon"; transform.Find(path).GetComponent <SpriteRenderer>().sprite = Materiral.GetMaterialIcon(goods.MateriralType, goods.ID); //显示商品价格 string priceiconpath = p.ID.ToString() + "/price/icon"; string pricepath = p.ID.ToString() + "/price/text"; transform.Find(priceiconpath).gameObject.SetActive(true); transform.Find(pricepath).gameObject.SetActive(true); transform.Find(pricepath).GetComponent <TextMesh>().text = goods.Price.ToString(); //移除背包中的商品 CharBag.RemoveGoods(goods.UID); _bagInstance.CloseBagMenu(gameObject); ChangeRecipeUiState(); PlayerData.ShopGoodsData.SaveShopGoods(goodslist); CharBag.SaveBagGoods(); questManager.CheckQuestListWithGoods(QuestManager.QuestTypeList.PutGoods, goods, 0); //更新物品信息 PlayerInfo.AddGoodsInfo(goods.MateriralType, goods.ID, PlayerInfo.GoodsInfoType.PutCount); }
//进入商店场景时显示上架的商品 void InitShopGoods() { #if _Debug Debug.Log("配置商店物品.."); #endif for (int i = 0; i < goodslist.Length; i++) { string priceiconpath = (i + 1).ToString() + "/price/icon"; string pricepath = (i + 1).ToString() + "/price/text"; transform.Find(priceiconpath).gameObject.SetActive(false); transform.Find(pricepath).gameObject.SetActive(false); if (goodslist[i].Name != null && goodslist[i].ID != 0) { transform.Find(priceiconpath).gameObject.SetActive(true); transform.Find(pricepath).gameObject.SetActive(true); string path = (i + 1).ToString() + "/itemIcon"; transform.Find(path).GetComponent <SpriteRenderer>().sprite = Materiral.GetMaterialIcon(goodslist[i].MateriralType, goodslist[i].ID); } } }
public void OpenItemInfo(CharBag.Goods good) { //名称 goodsUIBase.nameText.text = good.Name; //图片icon goodsUIBase.goodsIMG.sprite = Materiral.GetMaterialIcon(good.MateriralType, good.ID); //物品类型 if (good.MateriralType == 0) { goodsUIBase.MaterialtypeText.text = "类型:物品"; } else if (good.MateriralType == 1) { goodsUIBase.MaterialtypeText.text = "类型:概念"; } else { goodsUIBase.MaterialtypeText.text = "类型:未知"; } //数量 goodsUIBase.numText.text = "数量:" + good.Number.ToString(); //品质 goodsUIBase.qualityText.text = "品质:" + good.Quality.ToString(); //价格 goodsUIBase.priceText.text = "价格:" + good.Price.ToString(); //物品效果 if (good.MaterialEffet != 0) { Materiral.Effect _effect = Materiral.FindMaterialEffectByID(good.MaterialEffet); goodsUIBase.effect.text = _effect.Name; effect = _effect; } //物品属性 if (good.Property != null) { for (int i = 0; i < good.Property.Length; i++) { if (good.Property[i] == 0) { break; } Materiral.Property _p = Materiral.GetProNameByProID(good.Property[i]); GameObject p_obj = goodsUIBase.propertys[i]; p_obj.SetActive(true); p_obj.transform.GetChild(0).GetComponent <Text>().text = _p.Name; p_obj.transform.GetChild(1).GetComponent <Image>().sprite = Materiral.GetPropertyIcon(_p.ID); Propertys.Add(_p); } } //类型 goodsUIBase.typeText.text = Materiral.FindTypeNameByID(good.Type).Name; string str = Materiral.GetDesByMaterialID(good.MateriralType, good.ID); //描述 goodsUIBase.des.text = System.Text.RegularExpressions.Regex.Unescape(str); }
void SetRecipeNameInShop(object parameter) { Parameter.Box p = (Parameter.Box)parameter; //显示当前上架的物品 if (p.obj != null) { CharBag.Goods currentGoods = (CharBag.Goods)p.obj; Image _image = shopGoods.transform.Find("Image").GetComponent <Image>(); Text _text = shopGoods.transform.Find("Text").GetComponent <Text>(); Button _button = shopGoods.transform.Find("Button").GetComponent <Button>(); _text.text = "当前上架的商品:"; _text.transform.localPosition = new Vector3(_text.transform.position.x, 50, _text.transform.position.z); _image.gameObject.SetActive(true); _image.sprite = Materiral.GetMaterialIcon(currentGoods.MateriralType, currentGoods.ID); EventTriggerListener.Get(_image.gameObject).parameter = p; EventTriggerListener.Get(_image.gameObject).onClickByParameter = ShowMateriralInfo; _button.gameObject.SetActive(true); EventTriggerListener.Get(_button.gameObject).parameter = p; EventTriggerListener.Get(_button.gameObject).onClickByParameter = p.callbackByEvent; } //创建物品列表 for (int i = 0; i < _bagList.Count; i++) { CharBag.Goods _map = (CharBag.Goods)_bagList[i]; //筛选物品,特殊物品不显示 if (_map.MateriralType > 1) { continue; } GameObject button = Instantiate(btn_menu); button.transform.SetParent(_fitter.transform, false); button.name = _map.ID.ToString(); button.transform.Find("Text").GetComponent <Text>().text = _map.Name; button.transform.Find("Image").GetComponent <Image>().sprite = Materiral.GetMaterialIcon(_map.MateriralType, _map.ID); //显示数量 button.transform.Find("num").gameObject.SetActive(true); button.transform.Find("num/Text").GetComponent <Text>().text = _map.Number.ToString(); //显示价格 button.transform.Find("PriceBoard").gameObject.SetActive(true); button.transform.Find("PriceBoard/Text").GetComponent <Text>().text = _map.Price.ToString(); //设置参数容器中的参数 Parameter.Box _p = new Parameter.Box(); _p.ID = p.ID; _p.obj = _map; //设置点击事件 OnClickInScorll.Get(button.transform).parameter = _p; OnClickInScorll.Get(button.transform).onClickByParameter = p.callback; OnClickInScorll.Get(button.transform).onHoldByParameter = ShowMateriralInfo; //添加背包进入筛选背包列表 f_BagList.Add(_map); } //调整列表为置顶 if (f_BagList.Count > 5) { setGird(); } StartCoroutine(SetListToTop()); }
//TODO:add type mode void SetRecipeNameFilter(object parameter) { Parameter.Box p = (Parameter.Box)parameter; Recipe.Slot slot = (Recipe.Slot)p.obj; Dictionary <int, RecipeUI.SlotBox> slotList = (Dictionary <int, RecipeUI.SlotBox>)p.subobj; for (int i = 0; i < _bagList.Count; i++) { CharBag.Goods _map = new CharBag.Goods(); CharBag.Goods m_map = (CharBag.Goods)_bagList[i]; ////////筛选 if (slot.SlotType == Recipe.SlotTypeList.Material) { //固定材料 if (slot.MatType == 0 && slot.MatType == m_map.MateriralType) //Item { if (m_map.ID == slot.MatId) { _map = m_map; } } else if (slot.MatType == 1 && slot.MatType == m_map.MateriralType) //Mind { if (m_map.ID == slot.MatId) { _map = m_map; } } } else if (slot.SlotType == Recipe.SlotTypeList.MaterialType) { if (m_map.Type == slot.MatType) { _map = m_map; } } //添加进入背包列表,并且创建按钮 if (_map.Name != null) { //添加背包进入筛选背包列表 f_BagList.Add(_map); //创建按钮 GameObject button = Instantiate(btn_menu); button.transform.SetParent(_fitter.transform, false); button.name = _map.ID.ToString(); button.transform.Find("Text").GetComponent <Text>().text = _map.Name; button.transform.Find("Image").GetComponent <Image>().sprite = Materiral.GetMaterialIcon(_map.MateriralType, _map.ID); //显示数量 button.transform.Find("num").gameObject.SetActive(true); ; button.transform.Find("num/Text").GetComponent <Text>().text = _map.Number.ToString(); //设置参数容器中的参数 Parameter.Box _p = new Parameter.Box(); _p.ID = p.ID; _p.obj = _map; //设置点击事件 OnClickInScorll.Get(button.transform).parameter = _p; OnClickInScorll.Get(button.transform).onClickByParameter = p.callback; OnClickInScorll.Get(button.transform).onHoldByParameter = ShowMateriralInfo; //如果是已经的选中的则不能点击 foreach (RecipeUI.SlotBox _slot in slotList.Values) { if (_map.UID == _slot.slot.UID) { button.name = _map.ID.ToString(); button.transform.Find("Text").GetComponent <Text>().text = _map.Name + " <color=red>(E)</color>"; button.transform.GetComponent <Image>().color = Color.gray; OnClickInScorll.Get(button.transform).onClickByParameter = null; } } } } //调整列表为置顶 if (f_BagList.Count > 5) { setGird(); } StartCoroutine(SetListToTop()); }
public void OpenQuestBoard(int questID, float delyTime) { QuestManager.QuestBase quest = questManager.GetQuestInfoByID(questID); GameObject Board = Instantiate(QuestBoard); Board.name = quest.ID.ToString(); Board.transform.SetParent(QuestCanvas.transform, false); //获取面板组件 Image iconImage = Board.transform.Find("QuestBoard/icon").GetComponent <Image>(); Text questinfoText = Board.transform.Find("QuestBoard/questinfo/Text").GetComponent <Text>(); Text CompleteinfoText = Board.transform.Find("QuestBoard/questinfo/CompleteText").GetComponent <Text>(); Text questnameText = Board.transform.Find("QuestBoard/questName/questText").GetComponent <Text>(); Slider prograssBar = Board.transform.Find("QuestBoard/questName/progress").GetComponent <Slider>(); Text prograssBarText = Board.transform.Find("QuestBoard/questName/progress/progressText").GetComponent <Text>(); GameObject closebutton = Board.transform.Find("QuestBoard/Close").gameObject; Text closebuttonText = closebutton.transform.Find("Text").GetComponent <Text>(); GameObject Mask = Board.transform.Find("Mask").gameObject; GameObject questBoardBG = closebutton.transform.parent.gameObject; //Award Text awardGoldNum = Board.transform.Find("QuestBoard/award/GoldNum").GetComponent <Text>(); Text awardExpNum = Board.transform.Find("QuestBoard/award/ExpNum").GetComponent <Text>(); Image AwardGoodsImage = Board.transform.Find("QuestBoard/award/Goods").GetComponent <Image>(); Text AwardGoodsNum = Board.transform.Find("QuestBoard/award/GoodsNum").GetComponent <Text>(); //更新参数 iconImage.sprite = Materiral.GetIconByName(quest.Bigicon); questinfoText.text = TextParser.SpecialString(quest.des); questnameText.text = quest.name; awardGoldNum.text = "x" + quest.Award.Gold; awardExpNum.text = "x" + quest.Award.Exp; AwardGoodsImage.sprite = Materiral.GetMaterialIcon(quest.Award.Goods[0], quest.Award.Goods[1]); AwardGoodsNum.text = "x" + quest.Award.GoodsNum; prograssBar.value = (float)questManager.GetQuestProgress(quest.ID) / quest.QuestComplete.Num; prograssBarText.text = questManager.GetQuestProgress(quest.ID) + "/" + quest.QuestComplete.Num; //设置按钮响应 if (prograssBar.value >= 1) { if (PlayerInfo.GetNowscene() == quest.Award.TaskPoint) { //如果在任务地点则设置领取 closebutton.GetComponent <Image>().color = Color.green; closebuttonText.text = "领取"; EventTriggerListener.Get(closebutton).onClick = GetQuestAward; } else { //关闭按钮 closebutton.GetComponent <Image>().color = Color.white; closebuttonText.text = "关闭"; CompleteinfoText.text = quest.completedes; EventTriggerListener.Get(closebutton).onClick = CloseQuestBoard; } } else { //关闭按钮 closebutton.GetComponent <Image>().color = Color.white; closebuttonText.text = "关闭"; EventTriggerListener.Get(closebutton).onClick = CloseQuestBoard; } questBoardBG.transform.localPosition = new Vector2(0, Screen.height / 2 + 200); LeanTween.moveLocalY(closebutton.transform.parent.gameObject, 300, 0.5f).setEaseOutBack().setDelay(delyTime); }
void StartCompose(GameObject go) { for (int i = 0; i < recipeSlotsList.transform.childCount; i++) { if (recipeSlotsList.transform.GetChild(i).gameObject.name == "Compose") { continue; } GameObject slot = recipeSlotsList.transform.GetChild(i).gameObject; slot.transform.Find("Bottom/Image").GetComponent <Image>().color = Color.white; slot.transform.Find("Bottom").GetComponent <Image>().enabled = false; slot.transform.Find("Text").GetComponent <Text>().text = ""; slot.transform.Find("Count").gameObject.SetActive(false); } float actionTime = 3f; LeanTween.scale(btn_Compose.gameObject, new Vector3(0.1f, 0.1f, 0.1f), 0.1f).setEase(LeanTweenType.easeInBack).setOnComplete( () => { btn_Compose.gameObject.SetActive(false); }); ComposeMask.SetActive(true); Color c = recipeSlotsList.GetComponent <Image>().color; recipeSlotsList.GetComponent <Image>().color = new Color(c.r, c.g, c.b, 0); Color m = ComposeMask.GetComponent <Image>().color; //渐现效果 LeanTween.value(ComposeMask.gameObject, c, new Color(m.r, m.g, m.b, 0.7f), actionTime * 0.1f).setOnUpdate( (Color col) => { ComposeMask.GetComponent <Image>().color = col; } ); LeanTween.value(recipeSlotsList.gameObject, c, new Color(c.r, c.g, c.b, 0), actionTime * 0.1f).setOnUpdate( (Color col) => { recipeSlotsList.GetComponent <Image>().color = col; } ); //上升效果 LeanTween.moveY(recipeSlotsList.gameObject, Screen.height / 2, actionTime * 0.5f).setEase(LeanTweenType.easeOutQuad); //旋转效果 LeanTween.rotateZ(recipeSlotsList.gameObject, 360 * 10, actionTime).setEase(LeanTweenType.easeInOutQuad); LeanTween.scale(recipeSlotsList.gameObject, new Vector3(1.3f, 1.3f, 1.3f), actionTime * 0.7f).setEase(LeanTweenType.easeOutQuad).setOnComplete( () => { LeanTween.scale(recipeSlotsList.gameObject, new Vector3(0.1f, 0.1f, 0.1f), actionTime * 0.3f).setEase(LeanTweenType.easeInBack).setOnComplete( () => { CharBag.Goods goods = CreateGoods(); btn_startRecipe.gameObject.SetActive(true); btn_startRecipe.transform.Find("Text").GetComponent <Text>().text = "收取"; recipeSlotsList.gameObject.SetActive(false); EventTriggerListener.Get(btn_startRecipe.gameObject).onClick = CloseRecipe; targetgoods = Instantiate(btn_recipeSlot); targetgoods.transform.SetParent(recipeUI.transform, false); targetgoods.transform.SetAsLastSibling(); targetgoods.transform.position = recipeSlotsList.transform.position; targetgoods.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f); LeanTween.scale(targetgoods, new Vector3(1.5f, 1.5f, 1.5f), 1f).setEase(LeanTweenType.easeOutBack); targetgoods.transform.Find("Text").GetComponent <Text>().text = goods.Name; targetgoods.transform.Find("Bottom/Image").GetComponent <Image>().sprite = Materiral.GetMaterialIcon(goods.MateriralType, goods.ID); GameObject _targetButton = targetgoods.transform.Find("Bottom/Image").gameObject; EventTriggerListener.Get(_targetButton).parameter = goods; EventTriggerListener.Get(_targetButton).onClickByParameter = ShowMateriralInfo; }); } ); }
void InputMaterial(GameObject go, object parameter) { //如果已经放入则不能再放入 if (InputBox.Contains(parameter)) { return; } //判断状态 if (ripeState != RecipeStat.WaitInput) { return; } //改变状态 ChangeRecipeStat(RecipeStat.Compose); InputBox.Add(parameter); Parameter.Box pro = (Parameter.Box)parameter; SlotBox _slot = (SlotBox)pro.obj; GameObject _slotButton = _slot.button.transform.Find("Bottom/Image").gameObject; //合成槽效果 _slotButton.GetComponent <Image>().color = Color.gray; GameObject count = _slot.button.transform.Find("Count").gameObject; count.SetActive(true); count.transform.GetChild(0).GetComponent <Text>().text = InputBox.Count.ToString(); //飞向属性栏 GameObject _btn = Instantiate(btn_recipeSlot); _btn.transform.Find("Text").GetComponent <Text>().text = _slot.slot.Name; _btn.transform.Find("Bottom/Image").GetComponent <Image>().sprite = Materiral.GetMaterialIcon(_slot.slot.MateriralType, _slot.slot.ID); _btn.transform.Find("Bottom").GetComponent <Image>().enabled = false; _btn.transform.position = _slot.button.transform.position; _btn.transform.localScale = _slot.button.transform.localScale; _btn.transform.SetParent(Plane.transform, false); Vector3 _movepos = new Vector3(); Vector3 tmp = GetPropertyPos(PropertyBox.Count + 1); RectTransform _box = PropertyListGrid.GetComponent <RectTransform>(); _movepos = new Vector3(tmp.x + _box.position.x, tmp.y + _box.position.y); float actionTime = 0.65f; LeanTween.move(_btn.gameObject, _movepos, actionTime).setEase(LeanTweenType.easeOutQuart); LeanTween.scale(_btn.gameObject, new Vector3(0.1f, 0.1f, 1), actionTime).setDestroyOnComplete(true); //属性栏UI效果 if (_slot.slot.Property != null) { AddQualityUIEft(_slot); AddPropertyUIEft(_slot.slot); ComposeProperty(); } else { AddQualityUIEft(_slot); ShowComposeButton(); //改变状态 ChangeRecipeStatByWait(RecipeStat.WaitInput, 0.5f); return; } }
void ClickInBag(GameObject go, object parameter) { Parameter.Box p = (Parameter.Box)parameter; CharBag.Goods goods = (CharBag.Goods)p.obj; #if _Debug Debug.Log("ok!!" + " Name:" + goods.Name + " ID:" + p.ID); #endif SlotBox slotbox = new SlotBox(); if (SlotList.ContainsKey(p.ID)) { slotbox = SlotList[p.ID]; slotbox.button.transform.Find("Text").GetComponent <Text>().text = goods.Name; slotbox.button.transform.Find("Bottom/Image").GetComponent <Image>().sprite = Materiral.GetMaterialIcon(goods.MateriralType, goods.ID); slotbox.button.transform.Find("Bottom/Image").GetComponent <Image>().color = new Color(1, 1, 1, 1f); //把物品添加到合成系统的slotlist中 slotbox.slot = goods; SlotList[p.ID] = slotbox; //CloseBag _bagInstance.CloseBagMenu(gameObject); } }
IEnumerator ShowMateriralInList(CharBag.Goods goods) { yield return(null); float listHeight = MateriralList.Find("ListBox").GetComponent <RectTransform>().rect.height; float listWidth = MateriralList.Find("ListBox").GetComponent <RectTransform>().rect.width; GameObject materiral = Instantiate(bt_materiral); //获取materiral的颜色 Color _color_image = materiral.GetComponent <Image>().color; Color _color_text = materiral.transform.Find("Text").GetComponent <Text>().color; Color from = new Color(0, 0, 0, 0); materiral.GetComponent <Image>().color = from; materiral.transform.Find("Text").GetComponent <Text>().color = from; //获取materiral的大小 RectTransform rec_mat = bt_materiral.GetComponent <RectTransform>(); //添加进入列表中 materiral.transform.SetParent(MateriralList.Find("ListBox"), false); //materiral.transform.SetAsFirstSibling(); //如果显示数目超过顶部,则对齐顶部 if (MateriralList.Find("ListBox").transform.childCount *rec_mat.rect.height > listHeight) { GameObject materiallist = MateriralList.Find("ListBox").gameObject; LeanTween.moveLocalY(materiallist, MateriralList.Find("ListBox").transform.localPosition.y - rec_mat.rect.height, 0.15f); } float dis = MateriralList.Find("ListBox").GetComponent <RectTransform>().rect.height / 2; //dis为中心点;抵消local的偏差,使用local0点为中心点 float button_pos = -dis + (rec_mat.rect.height / 2) + (MateriralList.Find("ListBox").transform.childCount - 1) * rec_mat.rect.height; materiral.GetComponent <RectTransform>().localPosition = new Vector3(0, dis + button_pos); //由上落下的效果 LeanTween.moveLocalY(materiral, button_pos, 0.5f).setEase(LeanTweenType.easeOutBounce); //渐现效果 LeanTween.value(materiral, from, _color_image, 0.25f).setOnUpdate( (Color col) => { materiral.GetComponent <Image>().color = col; } ); LeanTween.value(materiral, from, _color_text, 0.25f).setOnUpdate( (Color col) => { materiral.transform.Find("Text").GetComponent <Text>().color = col; } ); //显示名称 materiral.transform.Find("Text").GetComponent <Text>().text = goods.Name; materiral.transform.Find("Image").GetComponent <Image>().sprite = Materiral.GetMaterialIcon(goods.MateriralType, goods.ID); EventTriggerListener.Get(materiral).parameter = goods; EventTriggerListener.Get(materiral).onClickByParameter = ShowMateriralInfo; }