/// <summary> /// 设置打出的牌里面与当前选择的牌相同的牌的遮罩 /// </summary> /// <param name="num"></param> private void SetSameCardNum(int num) { mSceneRoot.SetSameCardMaskShow(num); }
/// <summary> /// 初始化手牌 /// </summary> /// <param name="cards">手牌</param> /// <param name="count">手牌数量(是自己可以任意填)</param> /// <param name="curcard">当前摸在手上的牌(>0表示有)</param> public virtual void InitHandCards(List <int> cards, int count, int curcard = 0) { mAllHandCardList.Clear(); int len = cards == null ? count : cards.Count; int gridLen = mHandCardList.Count; MjCollectCard card; for (int i = 0; i < len; i++) { if (i < gridLen) { card = mHandCardList[i]; } else { card = NGUITools.AddChild(mHandGrid.gameObject, mHandCard.gameObject).GetComponent <MjCollectCard>(); mHandCardList.Add(card); } card.gameObject.SetActive(true); if (cards != null && cards.Count > 0) { card.SetNum(cards[i], mPlayerPosType); } mAllHandCardList.Add(card); SetFixeMask(card);//定缺遮罩 } for (int i = len; i < gridLen; i++) { mHandCardList[i].gameObject.SetActive(false); } mHandGrid.Reposition(); if (mPlayerPosType == PlayerPosType.Self)//设置自己手牌位置,打完牌或者碰杠后居中 { SetMyHandCardPos(len); } //设置摸起来的牌 if (curcard > 0) { List <Transform> list = mHandGrid.GetChildList(); if (list.Count > 0) { if (mPlayerPosType == PlayerPosType.Self) { Vector3 pos = list[list.Count - 1].position; float x = mHandGrid.CellWidth > 0 ? 1 : -1; mCurCard.transform.position = new Vector3(pos.x + 3.5f, pos.y, pos.z); } else { Vector3 pos = list[list.Count - 1].localPosition; float x = mHandGrid.CellWidth > 0 ? 1 : -1; mCurCard.transform.localPosition = new Vector3(pos.x + 4.8f * x, pos.y, pos.z); } mCurCard.gameObject.SetActive(true); mCurCard.SetNum(curcard, mPlayerPosType); SetFixeMask(mCurCard); //定缺遮罩 mAllHandCardList.Add(mCurCard); } } else { mCurCard.canHuList = null; mCurCard.gameObject.SetActive(false); } //关闭打出的牌里面与我选中牌相同牌的遮罩 if (mPlayerPosType == PlayerPosType.Self) { mRoot.SetSameCardMaskShow(-1); } }