Пример #1
0
    private void Reconnect()
    {
        preLastAckTime       = 0;
        countAfterDisconnect = 0;
        PhotonMultiBattleRelay.isDisconnected = false;
        if (myNetworkState == ConnectState.Connect)
        {
            PhotonMultiBattleRelay.StopEnemyAttackCoroutine();
            // 데이터 요청을 받는다, 상대방에서 연결해제 되어있는 동안 실행되었던 데이터를 보낸다.
        }
        else
        {
            // 데이터를 요청한다.
            // 연결해제 되어있는 동안 실행되었던 데이터를 받아오고 이후에 공격명령 코루틴을 실행한다.
            //PhotonMultiBattleRelay.ActiveMyReConnect();
        }

        myNetworkState = ConnectState.None;
    }
Пример #2
0
    private void JudegeDisconnectPlayer()
    {
        if (!PhotonMultiBattleRelay.isDisconnected)
        {
            return;
        }

        if (PhotonNetwork.networkingPeer.LastSendAckTime > preLastAckTime)
        {
            Debug.Log("My Networking is connecting");
            myNetworkState = ConnectState.Connect;
            PhotonMultiBattleRelay.StartEnemyAttackCoroutine();
            // 코루틴을 실행해서 공격명령을 계속 진행한다. 이때 주기적인 전체 동기화는 하지 않는다.
        }
        else
        {
            Debug.Log("My Networking is disconnected");
            myNetworkState = ConnectState.Disconnect;
            PhotonMultiBattleRelay.StopMyAttackCoroutine();
            // 공격명령을 중지시키고 재연결이 이루어지면 받아야하는 패킷 순서를 보낸다.
            // 받아야하는 패킷 순서이후의 명령들은 지운다.
        }
    }