Example #1
0
 public void AniStart(DVoidEventData callback, EventData data)
 {
     if (_newTable != null)
     {
         StopCoroutine(_newTable);
     }
     _newTable = StartCoroutine(NewTableAni(callback, data));
 }
Example #2
0
        IEnumerator NewTableAni(DVoidEventData callback, EventData data)
        {
            Transform[] Walls = new Transform[UtilDef.GamePlayerCnt];
            for (int i = 0; i < Walls.Length; i++)
            {
                Walls[i] = GameTable.WallMj[i].transform;
                Walls[i].gameObject.SetActive(true);
                Walls[i].localPosition = WallsAniPos[i];
            }
            //落板
            while (Bans.transform.localPosition.y > -0.1f)
            {
                Bans.transform.position = new Vector3(0, Bans.transform.position.y - MjSpeed, 0);

                if (Bans.transform.localPosition.y <= -0.11f)
                {
                    Bans.transform.localPosition = new Vector3(0, -0.11f, 0);
                }
                yield return(new WaitForSeconds(TimeLag));
            }
            yield return(new WaitForSeconds(0.1f));

            //牌横移

            while (Walls[0].localPosition.z > WallsPos[0].z)
            {
                Walls[0].localPosition = new Vector3(Walls[0].localPosition.x, Walls[0].localPosition.y, Walls[0].localPosition.z - MjSpeed);
                Walls[1].localPosition = new Vector3(Walls[1].localPosition.x + MjSpeed, Walls[1].localPosition.y, Walls[1].localPosition.z);
                Walls[2].localPosition = new Vector3(Walls[2].localPosition.x, Walls[2].localPosition.y, Walls[2].localPosition.z + MjSpeed);
                Walls[3].localPosition = new Vector3(Walls[3].localPosition.x - MjSpeed, Walls[3].localPosition.y, Walls[3].localPosition.z);

                if (Walls[0].localPosition.z <= WallsPos[0].z)
                {
                    Walls[0].localPosition = new Vector3(Walls[0].localPosition.x, Walls[0].localPosition.y, WallsPos[0].z);
                    Walls[1].localPosition = new Vector3(WallsPos[1].x, Walls[1].localPosition.y, Walls[1].localPosition.z);
                    Walls[2].localPosition = new Vector3(Walls[2].localPosition.x, Walls[2].localPosition.y, WallsPos[2].z);
                    Walls[3].localPosition = new Vector3(WallsPos[3].x, Walls[3].localPosition.y, Walls[3].localPosition.z);
                }
                yield return(new WaitForSeconds(TimeLag));
            }

            yield return(new WaitForSeconds(0.1f));

            //上升
            while (Walls[0].localPosition.y < WallsPos[0].y)
            {
                for (int i = 0; i < Walls.Length; i++)
                {
                    Walls[i].localPosition = new Vector3(Walls[i].localPosition.x, Walls[i].localPosition.y + MjSpeed, Walls[i].localPosition.z);
                }
                if (Walls[0].localPosition.y > -0.24f)
                {
                    Bans.transform.position = new Vector3(0, Bans.transform.position.y + MjSpeed, 0);
                }
                if (Walls[0].localPosition.y >= WallsPos[0].y)
                {
                    for (int i = 0; i < Walls.Length; i++)
                    {
                        Walls[i].localPosition = WallsPos[i];
                    }
                    Bans.transform.localPosition = new Vector3(0, -0.004f, 0);
                }
                yield return(new WaitForSeconds(TimeLag));
            }
            yield return(new WaitForSeconds(0.1f));

            callback(data);
        }