こんにちは、りくです。
前回のブログでは、Unity上でスクリプト作業をスムーズに行えるように、Visual StudioをUnityのデフォルトのエディタとして設定する方法をご紹介しました!
<実践編>3Dオンラインゲーム開発~Unity~第3話では弓が当たった時のエフェクトとチャット機能を開発していきます。
ここでは、Strix RPCという機能を使ったチャット開発について詳しく説明していきます。
|目次
|チャット機能開発
ストリクスRPCという機能を使ってチャット機能を開発していきます。
RPCについては、りくの質問コーナーで詳しく説明していきます!
今回ゲーム内に表示させるのは、ログと吹き出しの2つです。
<チャットの送信からログの表示>
りくのサンプルProjectのChat.csのスクリプトに、関数の設定と関数を呼ぶRPCをつくります。
なお、チャットのような文字列の入力は基本的にUnity標準機能の「InputField」を使用してよいと思います。
実際のコーディングについては、動画本編をご覧ください!
<吹き出しの表示>
吹き出しはチャットを送ってきたキャラクターに表示させる必要があります。そのため、キャラクターオブジェクトの所有者で判断します。
StrixRpcContextにはSenderUidという、オブジェクトの所有者を指すパラメータがあります。それと、strixReplicatorにあるownerUidを比べて一致したものが、そのRPCを送ったキャラクターということになるわけです。
以上で、チャット機能開発の完了です!
|りくの質問コーナー「RPCって何だろう?」
<りく>
ねぇアポロ、Strixが提供するRPCって、どんな機能なの?
<アポロ>
RPCについて説明するぞ!
RPCとはRemote Procedure Call(リモートプロシージャコール)の略です。
このRPCという機能を使用すると、通信越しに他のプレイヤーに対して自分と同じアクションをさせることができます。
例えば、他のプレイヤーの画面にいる自分のキャラクターにも手を振るというアクションをさせることができます。
弾を撃った時にヘルスバーが減るダメージ処理として使用することも可能です。
チャット開発にも利用することができます。
しかもStrix Cloudではアトリビュートをつけるだけで簡単にRPCを登録することができます。
つまり、プログラムを拡張することなくRPC機能をカンタンに追加することができるのです!
ゼロから始めるオンラインゲーム開発 第6話(4:32)