Exemplo n.º 1
0
    void Update()
    {
        var ready = PlayerProperties.GetAllLobbyStatus();

        if (Stop)
        {
            ready = false;
            Stop  = false;
        }

        var lastText = textMesh.text;

        if (ready)
        {
            canvas.enabled = true;

            elasped += Time.deltaTime;

            // Actually switch scenes 1 second after countdown
            // It's to check if no weird bad connections happen.
            if (elasped >= 4f)
            {
                CharacterSelect.Instance.LoadGame();
            }
            // Disable controls. It's too late. (Except for weird connections happen)
            else if (elasped >= duration && readyDirty)
            {
                textMesh.text = "LETS GO!";

                if (NetworkManager.inRoom && NetworkManager.isMaster)
                {
                    NetworkManager.net.CurrentRoom.IsOpen = false;
                }
                readyDirty    = false;
                notReadyDirty = true;
            }
            // Display
            else if (elasped < duration)
            {
                textMesh.text = Mathf.CeilToInt(duration - elasped).ToString();
            }
        }
        else
        {
            elasped = 0f;

            if (PlayerProperties.lobbyStatus.GetLocal())
            {
                canvas.enabled = true;
                textMesh.text  = "Waiting";
            }
            else
            {
                canvas.enabled = false;
            }

            if (notReadyDirty)
            {
                if (NetworkManager.inRoom && NetworkManager.isMaster)
                {
                    NetworkManager.net.CurrentRoom.IsOpen = true;
                }
                notReadyDirty = false;
                readyDirty    = true;
            }
        }
    }