void FlyCoin() { GameObject obj = new GameObject(); SpriteRenderer sr = obj.AddComponent <SpriteRenderer>(); sr.sprite = Materiral.GetIconByName("actionIcon_6"); sr.sortingLayerName = "Character"; Vector3 startpos = transform.position; float randomlength = Random.Range(-0.4f, 0.4f); Vector3 endpos = new Vector3(startpos.x + randomlength, Random.Range(-4.3f, -4.47f), 0); float randomheight = Random.Range(0.3f, 0.6f); float time = Mathf.Abs(randomheight); Debug.Log(randomheight); Vector3[] _path = new Vector3[] { startpos, startpos, new Vector3(startpos.x + randomlength / 2, randomheight + startpos.y, startpos.z), endpos, endpos }; LeanTween.moveSpline(obj, _path, time).setOnComplete(() => { LeanTween.moveY(obj, randomheight / 5 + startpos.y, time / 5).setOnComplete(() => { LeanTween.moveY(obj, endpos.y, time / 5).setEase(LeanTweenType.easeOutBounce); }); }); TimeTool.SetWaitTime(5f, obj, () => { LeanTween.alpha(obj, 0, 1).setDestroyOnComplete(true); }); }
void ComposeProperty() { int listCount = PropertyBox.Count; float actionTime = 0.5f; float DelayTime = 1f; Recipe.Result composID = new Recipe.Result(); ArrayList compose = recipeMap.ComposeProperty(PropertyBox, out composID); if (compose.Count != listCount) { if (_composCount > 0) { DelayTime = 0; } _composCount++; LeanTween.move(composID.Base2.Button.gameObject, composID.Base1.Button.position, actionTime).setEase(LeanTweenType.easeInOutQuad).setDelay(DelayTime).setOnComplete( () => { composID.Base1.Button.Find("Text").GetComponent <Text>().text = composID.Base1.Property.Name; composID.Base1.Button.Find("Image").GetComponent <Image>().sprite = Materiral.GetIconByName(composID.Base1.Property.IMG); Destroy(composID.Base2.Button.gameObject); //更新任务 //questManager.CheckQuestListWithGoods(QuestManager.QuestTypeList.ComposeProperty, composID.Base1.ID); LeanTween.scale(composID.Base1.Button.gameObject, new Vector3(1.1f, 1.1f, 1.1f), 0.125f).setLoopPingPong(1).setOnComplete( () => { ComposeProperty(); }); }); } else { //如果合成,则等待oncomplete改变状态 if (_composCount > 0) { //改变状态 _composCount = 0; ShowComposeButton(); //对齐位置 SetPropertyPos(); return; } //如果合成没有合成时 else { _composCount = 0; ShowComposeButton(); //改变状态 ChangeRecipeStat(RecipeStat.WaitInput); return; } } }
public void AddQustUI(QuestManager.QuestBase quest) { GameObject questButton = Instantiate(QuestButton); questButton.name = quest.ID.ToString(); questButton.transform.SetParent(QuestListUI.transform, false); Image iconImage = questButton.transform.Find("icon").GetComponent <Image>(); Slider prograssBar = questButton.transform.Find("progress").GetComponent <Slider>(); Transform hint = questButton.transform.Find("hint"); iconImage.sprite = Materiral.GetIconByName(quest.Smallicon); prograssBar.value = (float)PlayerInfo.GetQuestProgress(quest.ID) / quest.QuestComplete.Num; //如果已经完成 if (prograssBar.value >= 1) { hint.gameObject.SetActive(true); AniController.Get(hint.gameObject).AddSprite(hintsprites); hint.GetComponent <Image>().color = Color.green; AniController.Get(hint.gameObject).PlayAni(0, 3, AniController.AniType.Loop, 5); } EventTriggerListener.Get(questButton).onClick = OpenQuestBoard; }
public void creatIcon() { int count = Random.Range(19, 20); for (int i = 1; i <= count; i++) { GameObject obj = new GameObject(); SpriteRenderer sr = obj.AddComponent <SpriteRenderer>(); sr.sprite = Materiral.GetIconByName("actionIcon_6"); Vector3 endpos = new Vector3(startpos.x + Random.Range(-0.5f, 0.5f), startpos.y + Random.Range(-0.05f, 0.05f), 0); float randomheight = Random.Range(0.3f, 0.6f); float time = Mathf.Abs(randomheight); Debug.Log(randomheight); Vector3[] _path = new Vector3[] { startpos, startpos, new Vector3(endpos.x / 2, randomheight + startpos.y, startpos.z), endpos, endpos }; LeanTween.moveSpline(obj, _path, time).setOnComplete(() => { LeanTween.moveY(obj, randomheight / 5 + startpos.y, time / 5).setOnComplete(() => { LeanTween.moveY(obj, endpos.y, time / 5).setEase(LeanTweenType.easeOutBounce); }); }); } }
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); }
//属性效果UI效果 void AddPropertyUIEft(CharBag.Goods _slot) { float actionTime = 0.5f; for (int i = 0; i < _slot.Property.Length; i++) { if (_slot.Property[i] == 0) { continue; } int proID = _slot.Property[i]; RectTransform _property = Instantiate(PropertyListElement).GetComponent <RectTransform>(); _property.transform.SetParent(PropertyListGrid.transform, false); _property.localPosition = GetPropertyPos(PropertyBox.Count + 1); _property.sizeDelta = GetPropertySize(PropertyBox.Count + 1); //获取materiral的颜色 Color _color_image = _property.GetComponent <Image>().color; Color _color_text = _property.transform.Find("Text").GetComponent <Text>().color; Color from = new Color(_color_image.r, _color_image.g, _color_image.b, 0); _property.GetComponent <Image>().color = from; _property.transform.Find("Image").GetComponent <Image>().color = from; _property.transform.Find("Text").GetComponent <Text>().color = from; //渐现效果 LeanTween.value(_property.gameObject, from, _color_image, 0.25f).setDelay(actionTime).setOnUpdate( (Color col) => { _property.GetComponent <Image>().color = col; } ); LeanTween.value(_property.gameObject, from, _color_text, 0.25f).setDelay(actionTime).setOnUpdate( (Color col) => { _property.transform.Find("Text").GetComponent <Text>().color = col; } ); LeanTween.value(_property.gameObject, from, new Color(1, 1, 1, 1), 0.25f).setDelay(actionTime).setOnUpdate( (Color col) => { _property.transform.Find("Image").GetComponent <Image>().color = col; } ); //TODO:点击效果 //EndTODO Materiral.Property _p = Materiral.GetProNameByProID(proID); _property.transform.Find("Text").GetComponent <Text>().text = _p.Name; _property.transform.Find("Image").GetComponent <Image>().sprite = Materiral.GetIconByName(_p.IMG); PropertyElementBase _proBase = new PropertyElementBase(); _proBase.ID = PropertyBox.Count + 1; _proBase.Property = _p; _proBase.Button = _property; PropertyBox.Add(_proBase); } }
//设置合成界面槽的信息和位置 void SetSlot(Recipe.RecipeMap map) { int num = map.Slots.Length; //TODO:游戏道具的名称和ID,以及按钮的表现效果 Vector3 base_point = new Vector3(0, -100, 0); int targetAngel = 0; SlotList = new Dictionary <int, SlotBox>(); for (int i = 0; i < num; i++) { GameObject recipeSlot = Instantiate(btn_recipeSlot); recipeSlot.transform.SetParent(recipeSlotsList.transform, false); //设置按钮位置 targetAngel = 360 / num * i; Vector3 target_pos = Quaternion.Euler(0, 0, targetAngel) * base_point; recipeSlot.transform.localPosition = target_pos; //判断slot中材料的类型,0为固定材料,1为材料种类 if (map.Slots[i].SlotType == Recipe.SlotTypeList.Material) { //固定材料 if (map.Slots[i].MatType == 0) //Item { Materiral.Items _item = Materiral.FindItemByID(map.Slots[i].MatId); recipeSlot.name = i.ToString(); recipeSlot.transform.Find("Text").GetComponent <Text>().text = "[" + _item.Name + "]"; recipeSlot.transform.Find("Bottom/Image").GetComponent <Image>().sprite = Materiral.GetIconByName(_item.IMG); recipeSlot.transform.Find("Bottom/Image").GetComponent <Image>().color = new Color(1, 1, 1, 0.5f); } else if (map.Slots[i].MatType == 1) //Mind { Materiral.Minds _mind = Materiral.FindMindByID(map.Slots[i].MatId); recipeSlot.name = i.ToString(); recipeSlot.transform.Find("Text").GetComponent <Text>().text = "[" + _mind.Name + "]"; recipeSlot.transform.Find("Bottom/Image").GetComponent <Image>().sprite = Materiral.GetIconByName(_mind.IMG); recipeSlot.transform.Find("Bottom/Image").GetComponent <Image>().color = new Color(1, 1, 1, 0.5f); } } else if (map.Slots[i].SlotType == Recipe.SlotTypeList.MaterialType) { //材料类型 recipeSlot.name = i.ToString(); int typeID = map.Slots[i].MatType; Materiral.MaterialType type = Materiral.FindTypeNameByID(typeID); recipeSlot.transform.Find("Text").GetComponent <Text>().text = "<color=red>[" + type.Name + "]\n(类型)</color>"; recipeSlot.transform.Find("Bottom/Image").GetComponent <Image>().sprite = Materiral.GetIconByName(type.IMG); recipeSlot.transform.Find("Bottom/Image").GetComponent <Image>().color = new Color(1, 1, 1, 0.5f); } else { Debug.Log("Can't find recipe slots!"); } //设置参数容器中的参数 Parameter.Box parameter = new Parameter.Box(); parameter.ID = i; //ID为slot的序号 parameter.callback = ClickInBag; parameter.obj = map.Slots[i]; parameter.subobj = SlotList; //添加记录到合成系统用容器中 SlotBox slot = new SlotBox(); slot.button = recipeSlot; SlotList.Add(i, slot); //设置点击事件 GameObject _slot = recipeSlot.transform.Find("Bottom/Image").gameObject; EventTriggerListener.Get(_slot).parameter = parameter; EventTriggerListener.Get(_slot).onClickByParameter = OpenBag; } }