Ejemplo n.º 1
0
 public override void OnPlayerLeftRoom(Player otherPlayer)
 {
     //if(otherPlayerの部屋にいたら)
     //なんかテキスト表示したほうがいいかも
     if ((int)RPCAwaitStateList.FirstInRoom == (int)PhotonNetwork.LocalPlayer.CustomProperties[PunSettings.PropertiesKeyList.PlayerStateKey])
     {
         exitPos = (Vector3)otherPlayer.CustomProperties[PunSettings.PropertiesKeyList.RoomGateKey] + Vector3.back * PlayerToGateSpace;
         gameObject.transform.position = exitPos;
         _rpcState.MyRPCStateSet(RPCAwaitStateList.FirstInMain);
     }
     if ((int)RPCAwaitStateList.SecondInRoom == (int)PhotonNetwork.LocalPlayer.CustomProperties[PunSettings.PropertiesKeyList.PlayerStateKey])
     {
         exitPos = (Vector3)otherPlayer.CustomProperties[PunSettings.PropertiesKeyList.RoomGateKey] + Vector3.back * PlayerToGateSpace;
         gameObject.transform.position = exitPos;
         _rpcState.MyRPCStateSet(RPCAwaitStateList.SecondInMain);
     }
     //PlayerListの方も書く…?
 }
Ejemplo n.º 2
0
        public void SetElement(bool nextPlayerSend, byte[] element, PhotonMessageInfo info)
        {
            Debug.Log($"Recieve from: {info.Sender}");
            if (info.Sender.IsLocal)
            {
                Debug.LogError("TargetError");
            }
            //少しずつ送られてくるため、concatで足してく
            if (_screenShotElementStack == null)
            {
                _screenShotElementStack = element;
            }
            else
            {
                byte[] concat = Enumerable.Concat(_screenShotElementStack, element).ToArray();
                _screenShotElementStack = concat;
            }

            //1人が全部送信し終わったら
            if (nextPlayerSend)
            {
                Debug.Log($"info.Sender=>Finish: {info.Sender}");
                ScreenShotElement.Add(info.Sender, _screenShotElementStack);
                _screenShotElementStack = null;
                Player nextPlayer = info.Sender.GetNext();

                if (ScreenShotElement.ContainsKey(nextPlayer))
                {
                    //スクショ全員分送信完了
                    _rpcState.MyRPCStateSet(RPCAwaitStateList.SentScreenShot);

                    Debug.Log("SENDFINISH");
                }
                else if (Equals(nextPlayer, PhotonNetwork.LocalPlayer))
                {
                    //自分の分送信開始
                    Debug.Log("SendStart");
                    SetElement();
                }
            }
        }