あけましておめでとうございます。本年もどうぞよろしくお付き合い下さい。それでは、第四回とまいりましょう。今回は前回スルーしたRPCについてご紹介します。今回はRPCを用いて、ゲーム内のスコアを同期してみようと思います。Textを追加し、こんな感じに設定します。ついでに平行光源を追加してオブジェクトを見やすくしました。スフィア(でも何でもいい)を追加し、適当に配置します。わかりやすくするために色をつけてみました。Textに表示される、というゲームにしたいと思います。ゲームとして成立していないのはご愛嬌です。処理として必要になるものは、以下の3つになります。1衝突判定2RPCを呼び出す3呼び出されたRPCがスコアを加算1についてこれはPhotonCloudと関係がないので、さくっと作ります。moveTarget.csに以下のように追記します。scoreTarget.name){//衝突時の処理}}}説明不要ですね。続きまして、2・・・の前に、呼び出すRPCの作成から行います。3についてOnCollisionEnterの一連の流れの後に以下のように追記します。"points";}}まずスコア格納用の変数を定義しています。頭に[RPC]と記述する必要があります。これ以外は基本的に普通の関数と同じです。続いて2について、RPCの呼び出しを行います。今回のポイントはここからですよ~。先ほどの衝突時の処理に記述します。渡す変数)RPCを呼び出し、実行対象のクライアントで実行します。実行対象には・PhotonTargets.All・PhotonTargets.Othersなどがあり、Othersの場合は自分で呼び出しているくせに自分では実行しません。いつ使うんだろうと思っていたんですが、意外と使います。「渡す変数」というのは、通常の関数と同様に使えるのですが、最大の特徴は呼び出したクライアントの変数を送信するという部分です。これと上記のOthersを組み合わせると、自分の変数を相手に送りつけて、その変数を使った処理を相手だけ行う、なんてことが可能です。今回のサンプルでは、1衝突する2自分のスコアを加算3RPCを呼び出し、自分のスコアを(自身を含めて)他のプレイヤーに一斉送信4受け取ったスコアを自分のスコアに代入5テキスト更新という流れになっています。こんな風になれば成功です。次回はOnSerialize文による同期か、プレイヤープロパティ辺りを解説できればと思います。間違いありましたら、是非お教え下さい。