/// <summary> /// 切牌动画 /// </summary> /// <param name="wallList"></param> /// <param name="dun"></param> /// <param name="onComplete"></param> public void CutPokerAni(int dun, System.Action onComplete) { GameObject pokerOne = pokerWall[(2 * dun)]; GameObject pokerTwe = pokerWall[(2 * dun + 1)]; //改变顺序 选择距离远的切 bool tou = dun < (pokerWall.Count / 4); //是否距离头部近 Debug.Log(string.Format("是否距离头部近:{0}", tou)); pokerOne.transform.SetSiblingIndex(tou ? (pokerOne.transform.parent.childCount - 1) : 0); pokerTwe.transform.SetSiblingIndex(tou ? (pokerOne.transform.parent.childCount - 1) : 1); pokerWall.Remove(pokerOne); pokerWall.Remove(pokerTwe); pokerWall.Insert(tou ? (pokerWall.Count) : 0, pokerOne); pokerWall.Insert(tou ? (pokerWall.Count) : 1, pokerTwe); //上移 pokerOne.transform.DOLocalMove(pokerOne.transform.localPosition + new Vector3(0, 120, 0), 0.1f).OnComplete(() => { //移动至头尾 pokerOne.transform.DOLocalMove(dealTran.GetPos(tou ? (pokerWall.Count - 2) : 0) + new Vector3(0, 120, 0), 0.3f).OnComplete(() => { //全部归位 for (int i = 0; i < pokerWall.Count; i++) { if (i == pokerWall.Count - 1) { pokerWall[i].transform.DOLocalMove(dealTran.GetPos(i), 0.2f).OnComplete(() => { if (onComplete != null) { onComplete(); } }); } else { pokerWall[i].transform.DOLocalMove(dealTran.GetPos(i), 0.2f); } } }); }); pokerTwe.transform.DOLocalMove(pokerTwe.transform.localPosition + new Vector3(0, 120, 0), 0.1f).OnComplete(() => { pokerTwe.transform.DOLocalMove(dealTran.GetPos(tou ? (pokerWall.Count - 1) : 1) + new Vector3(0, 120, 0), 0.3f); }); }
/// <summary> /// 切牌动画 /// </summary> /// <param name="wallList">牌墙list</param> /// <param name="dun">切第几墩 </param> /// <param name="onComplete">回调</param> public void CutPokerAni(List <MaJiangCtrl_PaiJiu> wallList, int dun, System.Action onComplete) { MaJiangCtrl_PaiJiu pokerOne = wallList[(2 * dun)]; MaJiangCtrl_PaiJiu pokerTwe = wallList[(2 * dun + 1)]; //改变顺序 选择距离远的切 bool tou = dun < (wallList.Count / 4); //是否距离头部近 Debug.Log(string.Format("是否距离头部近:{0}", tou)); pokerOne.transform.SetSiblingIndex(tou ? (pokerOne.transform.parent.childCount - 1) : 0); pokerTwe.transform.SetSiblingIndex(tou ?(pokerOne.transform.parent.childCount - 1):1); wallList.Remove(pokerOne); wallList.Remove(pokerTwe); wallList.Insert(tou ? (wallList.Count) : 0, pokerOne); wallList.Insert(tou ? (wallList.Count) : 1, pokerTwe); //上移 pokerOne.transform.DOMove(pokerOne.transform.position + new Vector3(0, 15, 0), 0.3f).OnComplete(() => { //移动至头尾 pokerOne.transform.DOLocalMove(m_WallContainer.GetPos(tou ? (wallList.Count - 2) : 0) + new Vector3(0, -15, 0), 0.7f).OnComplete(() => { //全部归位 for (int i = 0; i < wallList.Count; i++) { if (i == wallList.Count - 1) { wallList[i].transform.DOLocalMove(m_WallContainer.GetPos(i), 0.4f).OnComplete(() => { if (onComplete != null) { onComplete(); } }); } else { wallList[i].transform.DOLocalMove(m_WallContainer.GetPos(i), 0.4f); } } }); }); pokerTwe.transform.DOMove(pokerTwe.transform.position + new Vector3(0, 15, 0), 0.3f).OnComplete(() => { pokerTwe.transform.DOLocalMove(m_WallContainer.GetPos(tou ? (wallList.Count - 1) : 1) + new Vector3(0, -15, 0), 0.7f); }); }