/// <summary> /// 根据类型移除图标 /// </summary> /// <param name="characterStatus"></param> public void RemoveStatusIconByType(CharacterStatusIconEnum characterStatus) { for (int i = 0; i < listStatusIcon.Count; i++) { CharacterStatusIconItemCpt itemCpt = listStatusIcon[i]; if (itemCpt.statusIconData.iconStatus == characterStatus) { if (itemCpt && itemCpt.gameObject) { //itemCpt.transform.DOScale(new Vector3(0, 0, 0), 0.5f).OnComplete(delegate //{ // if (itemCpt && itemCpt.gameObject) // Destroy(itemCpt.gameObject); //}); Destroy(itemCpt.gameObject); listStatusIcon.Remove(itemCpt); i--; } } } float totalX = (listStatusIcon.Count - 1) * 0.5f; float startX = -(totalX / 2f); //设置新的位置 for (int i = 0; i < listStatusIcon.Count; i++) { CharacterStatusIconItemCpt itemCpt = listStatusIcon[i]; if (itemCpt && itemCpt.gameObject) { itemCpt.transform.DOLocalMoveX(startX + i * 0.5f, 0.5f); } } }
/// <summary> /// 根据类型移除图标 /// </summary> /// <param name="characterStatus"></param> public void RemoveStatusIconByMarkId(string markId) { if (CheckUtil.StringIsNull(markId)) { return; } for (int i = 0; i < listStatusIcon.Count; i++) { CharacterStatusIconItemCpt itemData = listStatusIcon[i]; if (itemData.statusIconData.markId.Equals(markId)) { itemData.transform.DOScale(new Vector3(0, 0, 0), 0.5f).OnComplete(delegate { if (itemData.gameObject) { Destroy(itemData.gameObject); } }); listStatusIcon.Remove(itemData); i--; } } float totalX = (listStatusIcon.Count - 1) * 0.5f; float startX = -(totalX / 2f); //设置新的位置 for (int i = 0; i < listStatusIcon.Count; i++) { CharacterStatusIconItemCpt itemCpt = listStatusIcon[i]; itemCpt.transform.DOLocalMoveX(startX + i * 0.5f, 0.5f); } }
public void RemoveAllStatusIcon() { for (int i = 0; i < listStatusIcon.Count; i++) { CharacterStatusIconItemCpt itemCpt = listStatusIcon[i]; if (itemCpt != null) { Destroy(itemCpt.gameObject); } } listStatusIcon.Clear(); }
/// <summary> /// 创建图标 /// </summary> /// <param name="itemData"></param> /// <param name="iconPosition"></param> /// <returns></returns> public GameObject CreateStatusIcon(CharacterStatusIconBean itemData, Vector3 iconPosition) { GameObject objStatus = Instantiate(gameObject, objIconModel); objStatus.transform.localPosition = iconPosition; CharacterStatusIconItemCpt itemCpt = objStatus.GetComponent <CharacterStatusIconItemCpt>(); itemCpt.SetData(itemData); listStatusIcon.Add(itemCpt); objStatus.transform.DOScale(new Vector3(0, 0, 0), 0.5f).From().SetEase(Ease.OutBack); return(objStatus); }
public void AddStatusIcon(CharacterStatusIconBean statusData) { //获取新的位置 float totalX = (listStatusIcon.Count) * 0.5f; float startX = -(totalX / 2f); //设置新的位置 for (int i = 0; i < listStatusIcon.Count; i++) { CharacterStatusIconItemCpt itemCpt = listStatusIcon[i]; itemCpt.transform.DOLocalMoveX(startX + i * 0.5f, 0.5f); } //创建添加的图标 CreateStatusIcon(statusData, new Vector3(startX + listStatusIcon.Count * 0.5f, objIconModel.transform.localPosition.y)); }
/// <summary> /// 修改图标 /// </summary> /// <param name="statusData"></param> public void ChangeStatusIcon(CharacterStatusIconBean statusData) { bool hasData = false; for (int i = 0; i < listStatusIcon.Count; i++) { CharacterStatusIconItemCpt itemData = listStatusIcon[i]; if (itemData.statusIconData.iconStatus == statusData.iconStatus) { hasData = true; itemData.statusIconData.spIcon = statusData.spIcon; itemData.statusIconData.spColor = statusData.spColor; itemData.SetData(itemData.statusIconData); itemData.transform.localScale = new Vector3(1, 1, 1); itemData.transform.DOScale(new Vector3(0, 0, 0), 0.5f).From().SetEase(Ease.OutBack);; } } if (!hasData) { AddStatusIcon(statusData); } }