/// <summary> /// 回合条移动处理 /// </summary> public void HandleForRoundMove() { if (!isRounding) { return; } for (int i = 0; i < listCharacterRound.Count; i++) { ItemMiniGameCombatCharacterRoundCpt itemCpt = listCharacterRound[i]; float roundSpeed = (0.5f + itemCpt.speedForMove / 10f); //回合条向右移动 itemCpt.transform.Translate(new Vector3(1, 0) * Time.deltaTime * roundSpeed); //检测是否到达目标点 if (itemCpt.transform.position.x >= objRoundEnd.transform.position.x) { itemCpt.transform.position = objRoundEnd.transform.position; //设置为选中状态 itemCpt.SetStatus(true); //通知轮到角色回合 if (callBack != null) { callBack.CharacterRound(itemCpt.gameCharacterData); } isRounding = false; break; } } }
/// <summary> /// 移除角色回合行动 /// </summary> public void RemoveCharacterRound(MiniGameCharacterBean miniGameCharacter) { for (int i = 0; i < listCharacterRound.Count; i++) { ItemMiniGameCombatCharacterRoundCpt itemRound = listCharacterRound[i]; if (itemRound.gameCharacterData == miniGameCharacter) { listCharacterRound.Remove(itemRound); Destroy(itemRound.gameObject); return; } } }
/// <summary> /// 刷新UI /// </summary> public override void RefreshUI() { base.RefreshUI(); for (int i = 0; i < listCharacterInfo.Count; i++) { ItemMiniGameCombatCharacterInfoCpt itemInfo = listCharacterInfo[i]; itemInfo.RefreshUI(); } for (int i = 0; i < listCharacterRound.Count; i++) { ItemMiniGameCombatCharacterRoundCpt itemInfo = listCharacterRound[i]; itemInfo.RefreshUI(); } }
/// <summary> /// 初始化角色回合 /// </summary> /// <param name="gameCharacterData"></param> public void InitCharacterRound(MiniGameCharacterBean gameCharacterData) { for (int i = 0; i < listCharacterRound.Count; i++) { ItemMiniGameCombatCharacterRoundCpt itemCpt = listCharacterRound[i]; if (gameCharacterData == itemCpt.gameCharacterData) { //恢复状态 itemCpt.SetStatus(false); //重新设置位置 RectTransform itemRTF = (RectTransform)itemCpt.transform; itemRTF.anchoredPosition = Vector2.zero; return; } } }
/// <summary> /// 创建角色信息 /// </summary> /// <param name="position"></param> /// <param name="gameCharacterData"></param> /// <param name="objContainer"></param> /// <param name="objModel"></param> public void CreateCharacterItem(int position, MiniGameCharacterBean gameCharacterData, GameObject objContainer, GameObject objModel) { //创建角色信息 GameObject objItem = Instantiate(objContainer, objModel); ItemMiniGameCombatCharacterInfoCpt characterInfoCpt = objItem.GetComponent <ItemMiniGameCombatCharacterInfoCpt>(); characterInfoCpt.SetData(gameCharacterData); listCharacterInfo.Add(characterInfoCpt); //创建回合条信息 GameObject objRoundItem = Instantiate(objRoundCharacterContainer, objRoundCharacterModel); RectTransform rtfItemRound = objRoundItem.GetComponent <RectTransform>(); ItemMiniGameCombatCharacterRoundCpt characterRoundCpt = objRoundItem.GetComponent <ItemMiniGameCombatCharacterRoundCpt>(); characterRoundCpt.SetData((MiniGameCharacterForCombatBean)gameCharacterData); listCharacterRound.Add(characterRoundCpt); //添加动画 objItem.transform.DOScale(new Vector3(0.2f, 0.2f, 0.2f), 0.5f).From().SetDelay(0.1f * position).SetEase(Ease.OutBack); objRoundItem.transform.DOScale(new Vector3(0.2f, 0.2f, 0.2f), 0.5f).From().SetDelay(0.1f * position).SetEase(Ease.OutBack); }