/// <summary> /// 战斗过程中如果遗忘技能,需要将该主动技能的按钮移除 /// </summary> public void RemoveActiveSkillButton(Skill skill) { for (int i = 0; i < activeSkillButtonContainer.childCount; i++) { ActiveSkillButton activeSkillButton = activeSkillButtonContainer.GetChild(i).GetComponent <ActiveSkillButton>(); if (activeSkillButton.skill.skillId == skill.skillId) { activeSkillButton.Reset(); activeSkillButtonPool.AddInstanceToPool(activeSkillButton.gameObject); } } // 移除技能按钮时要更新技能按钮的点击响应,因为响应方法中有一个序号参数需要更新 //(进入战斗初始化的时候按照技能顺序给按钮定了序号,点击时根据序号参数获得使用的是哪个技能,遗忘技能后该序号参数应该也更新一次) for (int i = 0; i < player.attachedActiveSkills.Count; i++) { ActiveSkill activeSkill = player.attachedActiveSkills[i]; ActiveSkillButton activeSkillButton = activeSkillButtonContainer.GetChild(i).GetComponent <ActiveSkillButton>(); int index = i; float coolenPercentage = activeSkillButton.mask.fillAmount; activeSkill.coolenPercentage = (int)(coolenPercentage * 100); activeSkillButton.SetUpActiveSkillButton(activeSkill, index, activeSkillButtonContainer); activeSkillButton.AddListener(OnActiveSkillButtonClick); } }
public void InitAllActiveSkillButtons() { for (int i = 0; i < activeSkillButtonContainer.childCount; i++) { ActiveSkillButton activeSkillButton = activeSkillButtonContainer.GetChild(i).GetComponent <ActiveSkillButton>(); activeSkillButton.validTint.gameObject.SetActive(false); activeSkillButton.Reset(); } }