お問い合わせありがとうございます。ただ、残念ながら同様なトラブルは聞いたことがなく、断定的なことを言うことができません。
まず、ご質問の内容から、Strix Unity SDKをお使いで、RPCの定義は次のようになっているものと想像します。
[StrixRpc]
public void TurnChange()
{
isTurnPlayer = !isTurnPlayer;
}
ここで、以下のような現象が起きているということでしょうか。
- いずれかのプレイヤーが
RpcToAll("TurnChange");
を1回呼ぶと、RpcToAllを呼んだ側も、そうでない側も、実際のTurnChangeメソッドが2回呼び出されてしまう。
- しかし、上記のメソッドを次のように変更すると、TurnChangeが2回呼び出されることはなくなり1回のみの呼び出しになる。
[StrixRpc]
public void TurnChange()
{
// isTurnPlayer = !isTurnPlayer;
}
STRIXではRPCの呼び出しに際し、実際のメソッドの中身は見ませんので、TurnChangeメソッドの内容によってRPCの処理が変わるということは、本来有り得ないはずです。
こちらでも試してみたいのですが、TurnChangeが何回呼び出されているのかはどのように確認なさっていますでしょうか? ログ出力の挿入でしょうか、それともデバッガーをお使いでしょうか?