public void onPointUp() { Debug.Log("[onPointUp] gangEnabled=" + gangEnabled); if (gangEnabled) { if (myMahjongs != null) { MyTilesScript myTilesScript = myMahjongs.GetComponent <MyTilesScript>(); if (myTilesScript != null) { myTilesScript.OnGangClicked(); } } } }
public void OnPointUp() { MyTilesScript myMahjongs = GameObject.Find("MyTiles").GetComponent <MyTilesScript>() as MyTilesScript; switch (currentStatus) { case Status.Selecting: case Status.Closed: myMahjongs.ResetStatus(); if (myMahjongs.CreateMahjongByValue(mahjongValue)) { SetStatus(Status.Gone); return; //如果被手里的牌接收了,则处理结束 } NewFetchScript currentMahjong = GameObject.Find("NewFetched").GetComponent <NewFetchScript>() as NewFetchScript; if (currentMahjong.ReceiveMahjong(this.GetMahjongValue())) { // GameObject.Destroy(this); // 已经被传给当前牌了,因为当前牌是复用,所以可以直接销毁被摸的牌 // transform.SetParent(null); SetStatus(Status.Gone); return; // 摸牌的情况 } break; case Status.Holding: SetStatus(Status.HoldingToThrow); break; case Status.HoldingToThrow: // 如果不是手里的牌,直接销毁 if (!this.isMine) { SetStatus(Status.Gone); } else { // 如果是手里的牌,则需要把新抓的牌替代进去 GameObject currentMahjong2 = GameObject.Find("CurrentMahjong"); if (currentMahjong2 != null) { Mahjong to = currentMahjong2.GetComponent <Mahjong>() as Mahjong; if (to.GetStatus() != Status.Gone) { myMahjongs.updateMahjong(this, to.GetMahjongValue()); to.SetStatus(Status.Gone); } } else { // (未知错误的时候,通常不会发生)如果是手里的牌,但又没有摸牌,则恢复。 SetStatus(Status.Holding); } } break; case Status.HoldingToGang: myMahjongs.OnMahjongSelectedToGang(mahjongValue); break; } }