//tips
//RPCでphoton同期先との状態共有を行う
現在同期先との共通値がうまく設定できていないので、他プレイヤー側のメソッドを呼び出し実行するRPC(リモートプロシージャコール)の使用を考える。
RPCで実行したいメソッドに[PunRPC]をつけ、PhotonView.RPC()から呼び出せるようにする。
// [PunRPC]属性をつけると、RPCでの実行が有効になる
[PunRPC]
public void Onflag()
として、ボタンクリックから反応するか確認してみた。
これによりボタンを一回クリックしただけで2回分のクリック反応がとられ、常にUIが表示されるようになる。
試しにNumberPropスクリプトに下記を追加してみたがこちらは共通事項として同期できなかったので、生成されるプレイヤー自身のスクリプトにアタッチした方が成功しやすいことがわかった。
[PunRPC]
public void LobbyCount()
{
lobbyPlayerMaxCount++;
PlayerPrefs.SetInt("Count", lobbyPlayerMaxCount);
PlayerPrefs.Save();
Debug.Log(lobbyPlayerMaxCount);
//moveMine.Onflag();
}
突如photonとの接続が切れた。unityおよびlaptopの再起動を行うもunityエディターの大量のエラーメッセージが出て、実行ボタンを押してもシーンが動かなくなった。
エラーぼほとんどはphoton関連のものでかつphotonのコンポーネントを表示できなくなっていることからunityが問題になっているわけではないと考えた。
一旦、photonをのマイページでidがきちんと残っていることを確認した後に、アセットストアからPUN2を再度インストールした。
無事photonのコンポーネントが表示されるようになり、シーンも実行できるようになったが下記の警告も現れた。
[0.49] SupportLogger Info: AppID: "e6160b66***" AppVersion: "1.0_2.27" Client: v4.1.4.9 Build: 2018.4.20f1, OSXEditor, ENABLE_MONO, DEBUG, NET_STANDARD_2_0, UNITY_64 Socket: SocketUdp UserId: "" AuthType: N/A AuthMode: Auth PayloadEncryption State: ConnectingToNameServer PeerID: 65535 NameServer: ns.exitgames.com Current Server: ns.exitgames.com:5058 IP: Region: jp/*
UnityEngine.Debug:LogWarning(Object)
Photon.Realtime.SupportLogger:LogBasics() (at Assets/Photon/PhotonRealtime/Code/SupportLogger.cs:256)
Photon.Realtime.SupportLogger:Start() (at Assets/Photon/PhotonRealtime/Code/SupportLogger.cs:92)
一旦photon関係は確認のため保留とする。
//シーンの環境整備
シーンの地形/環境の作成に着手する。Lowpoly Styleシリーズのforestをチョイスした。
Demoシーンを見るとなかなかいい具合。高低差と隙間は不要なのでそこをうまく編集し、正方形に収まるようなシーンを作成していく。
まずは現在のterrainの大きさがterrainコンポーネントの設定でMeshResolutionを見るとwidth/Lengthが500と設定されている。
5~10人でプレイするのにも広すぎ流ように感じるため、width/Lengthが250とheight100で設定した。