Exemplo n.º 1
0
    // Update is called once per frame
    public new void Update()
    {
        base.Update();

        if (gamePlayerController.state == GameState.BeforeStart)
        {
            gamePlayerController.game.ShowStateLabel("等待其他玩家加入...");
        }

        if (isMoveSeat)
        {
            float  step = moveSeatSpeed * Time.deltaTime;
            bool[] moveCompletedArray = new bool[Game.SeatCount];
            for (int i = 0; i < fromPositions.Length; i++)
            {
                int fromSeatIndex = fromPositions [i], toSeatIndex = toPositions [i];
                //Debug.Log ("move seat: " + fromPositions[i] + " --> " + toPositions[i]);
                GameObject fromSeat   = seats[fromSeatIndex].playerPanel;
                Vector3    toPosition = positions [toSeatIndex];
                fromSeat.transform.position = Vector3.MoveTowards(fromSeat.gameObject.transform.position, toPosition, step);

                if (Utils.isTwoPositionIsEqual(fromSeat.gameObject.transform.position, toPosition))
                {
                    moveCompletedArray [i] = true;
                }
            }

            bool isMoveCompleted = true;
            for (int i = 0; i < fromPositions.Length; i++)
            {
                isMoveCompleted = isMoveCompleted && moveCompletedArray [i];
            }

            if (isMoveCompleted)
            {
                isMoveSeat = false;

                for (int i = 0; i < Game.SeatCount; i++)
                {
                    seats[i].playerPanel.transform.position = positions [i];
                }

                foreach (Seat seat in seats)
                {
                    seat.UpdateUI(gamePlayerController.game);
                }

                gamePlayerController.ResetUI();
            }
        }
    }