public static SingleLearnedSkill CeateNew(int _index, int _id, GameObject gameParent) { Object prefab = null; if (prefab == null) { prefab = exResources.GetResource(ResourceType.GUI, "SpiritAnimal/skill"); } if (prefab == null) { GameSys.LogError("找不到已学技能预制"); return(null); } GameObject obj = Instantiate(prefab) as GameObject; obj.transform.parent = gameParent.transform; obj.transform.localPosition = Vector3.zero; obj.transform.localScale = Vector3.one; prefab = null; SingleLearnedSkill itemUI = obj.GetComponent <SingleLearnedSkill>(); if (itemUI == null) { GameSys.LogError("预制上找不到组件:<SingleLearnedSkill>"); return(null); } itemUI.SkillRef = ConfigMng.Instance.GetPetSkillRef(_id); return(itemUI); }
void ShowSkill() { List <uint> SkillList = curTargetInfo.CurPetInfo.SkillList; foreach (SingleLearnedSkill ui in petSkillList.Values) { ui.gameObject.SetActive(false); } if (grid != null) { grid.maxPerLine = SkillList.Count; SingleLearnedSkill skill = null; for (int i = 0, max = SkillList.Count; i < max; i++) { int id = (int)SkillList[i]; if (!petSkillList.ContainsKey(id)) { if (singleSkill != null) { GameObject go = (GameObject)GameObject.Instantiate(singleSkill.gameObject); go.transform.parent = singleSkill.transform.parent; go.transform.localPosition = Vector3.zero; go.transform.localScale = Vector3.one; skill = go.GetComponent <SingleLearnedSkill>(); if (skill != null) { petSkillList[id] = skill; skill.SkillRef = ConfigMng.Instance.GetPetSkillRef((int)id); } go.SetActive(true); } } else { SingleLearnedSkill petskill = petSkillList[id] as SingleLearnedSkill; petskill.SkillRef = ConfigMng.Instance.GetPetSkillRef((int)id); petskill.transform.localPosition = new Vector3(); petskill.gameObject.SetActive(true); } } grid.repositionNow = true; } }
/// <summary> /// 显示技能 /// </summary> void ShowSkill() { if (parent != null) { UIGrid grid = parent.GetComponent <UIGrid>(); if (grid != null) { grid.maxPerLine = curInfo.SkillList.Count; for (int i = 0, max = petLearedSkillList.Count; i < max; i++) { petLearedSkillList[i].SkillRef = null; petLearedSkillList[i].gameObject.SetActive(false); } for (int i = 0, max = curInfo.SkillList.Count; i < max; i++) { if (petLearedSkillList.Count <= i) { SingleLearnedSkill item = SingleLearnedSkill.CeateNew(i, (int)curInfo.SkillList[i], parent); item.gameObject.SetActive(true); item.SkillRef = ConfigMng.Instance.GetPetSkillRef((int)curInfo.SkillList[i]); if (item != null) { petLearedSkillList.Add(item); UIEventListener.Get(item.gameObject).onClick -= OnClickSkill; UIEventListener.Get(item.gameObject).onClick += OnClickSkill; UIEventListener.Get(item.gameObject).parameter = (int)curInfo.SkillList[i]; } } else { petLearedSkillList[i].SkillRef = ConfigMng.Instance.GetPetSkillRef((int)curInfo.SkillList[i]); petLearedSkillList[i].gameObject.SetActive(true); UIEventListener.Get(petLearedSkillList[i].gameObject).onClick -= OnClickSkill; UIEventListener.Get(petLearedSkillList[i].gameObject).onClick += OnClickSkill; UIEventListener.Get(petLearedSkillList[i].gameObject).parameter = (int)curInfo.SkillList[i]; } } grid.repositionNow = true; } } }
/// <summary> /// 显示所有被动技能 /// </summary> void ShowSkill() { skillProperty = 0; List <NewPetSkillRef> list = new List <NewPetSkillRef>(); for (int i = 0, max = curInfo.SkillList.Count; i < max; i++) { NewPetSkillRef petSkillRef = ConfigMng.Instance.GetPetSkillRef((int)curInfo.SkillList[i]); if (petSkillRef != null) { if (petSkillRef.beidong == 2 || petSkillRef.beidong == 3 || petSkillRef.beidong == 4) { if (petSkillRef.beidong == 4) { for (int j = 0; j < petSkillRef.add_attr.Count; j++) { skillProperty += petSkillRef.add_attr[j].value; } } list.Add(petSkillRef); } } } if (parent != null) { if (grid != null) { grid.maxPerLine = list.Count; for (int i = 0, max = petBDSkillList.Count; i < max; i++) { petBDSkillList[i].SkillRef = null; petBDSkillList[i].gameObject.SetActive(false); } for (int i = 0, max = list.Count; i < max; i++) { NewPetSkillRef petSkillRef = list[i]; if (petSkillRef != null) { if (petBDSkillList.Count <= i) { SingleLearnedSkill item = SingleLearnedSkill.CeateBDSkill(i, petSkillRef.id, parent); if (item != null) { item.gameObject.SetActive(true); petBDSkillList.Add(item); UIEventListener.Get(item.gameObject).onClick -= OnClickSkill; UIEventListener.Get(item.gameObject).onClick += OnClickSkill; UIEventListener.Get(item.gameObject).parameter = petSkillRef.id; } } else { petBDSkillList[i].SkillRef = petSkillRef; petBDSkillList[i].gameObject.SetActive(true); UIEventListener.Get(petBDSkillList[i].gameObject).onClick -= OnClickSkill; UIEventListener.Get(petBDSkillList[i].gameObject).onClick += OnClickSkill; UIEventListener.Get(petBDSkillList[i].gameObject).parameter = petSkillRef.id; } } } grid.repositionNow = true; } } }