Пример #1
0
    public NetworkManager()
    {
        AppId         = PHOTON_CLOUD_APP_ID;
        AppVersion    = GAME_VERSION;
        AutoJoinLobby = AUTO_JOIN_LOBBY;

        OnStateChangeAction += (ClientState inClientState) =>
        {
            switch (inClientState)
            {
            case ClientState.Joining:
                Debug.Log("Joining room...");
                break;

            case ClientState.Joined:
                Debug.Log("Joined room: " + CurrentRoom.Name + ", PlayerCount: " + CurrentRoom.PlayerCount + ", ID: " + LocalPlayer.ID);
                OnConnectedToRoom?.Invoke();
                break;

            case ClientState.ConnectedToMasterserver:
                Debug.Log("Connected to master server.");
                OnConnectedToMasterServer?.Invoke();
                break;
            }
        };

        OnConnectedToMasterServer += TryJoinOrCreateDebugRoom;

        Program.OnUpdate += Update;
        Program.OnQuit   += Disconnect;

        TryConnectToServer();
    }
Пример #2
0
    private void Client_OnStateChangeAction(ClientState clientState)
    {
        switch (clientState)
        {
        case ClientState.JoinedLobby:
            LocalPlayerID = LocalPlayer.ID;
            OnJoinedLobby?.Invoke();
            break;

        case ClientState.DisconnectingFromMasterserver:
            OnDisconnectedFromMasterServer?.Invoke();
            break;

        case ClientState.ConnectedToGameserver:
            OnConnectedToGameServer?.Invoke();
            break;

        case ClientState.Joining:
            OnJoinedGame?.Invoke();
            break;

        case ClientState.Joined:
            LocalPlayerID = LocalPlayer.ID;
            OnJoinedRoom?.Invoke();
            break;

        case ClientState.Leaving:
            OnLeftRoom?.Invoke();
            break;

        case ClientState.Disconnected:
            OnDisconnected?.Invoke();
            break;

        case ClientState.ConnectedToMasterserver:
            CreateOrJoinRoom();
            OnConnectedToMasterServer?.Invoke();
            break;

        case ClientState.ConnectedToNameServer:
            if (string.IsNullOrEmpty(client.CloudRegion))
            {
                client.OpGetRegions();
            }
            break;
        }
    }