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の方も書く…? }
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(); } } }