最近書いたQiita記事
qiita.com
実際 Unity でリアルタイム通信ゲームを作ろうと思った時に、脳内で走ったシミュレーションをここに書き出してみます。
ある一人がルームを作成している状態
もう一人がルーム一覧を知る術はあるか→知らない
ルーム名を固定したときに、すでに入っている人のアバター情報を取得する方法はあるか→知らない
誰かがルームに入ってきたことはわかる→既存のメンバーがその新規メンバーに情報をその後に渡せばよいだろう
特定メンバーにだけ送信できるのか→なかった、guid で除外するメンバーを指定できる
StreamingHubBase.Context にContextId があり、ここの値を使う
Room の Group に AddAsync するときにデータを載せられるらしい?次の関数を使えば
ValueTask<(IGroup, IInMemoryStorage
であるならば、Group からリストを取り出して、対象の guid 以外を except することも可能か…
各種入力値を通信で渡すようにすれば、通信量は小さい
定期的に絶対値などのステータスを同期する、5秒に1回とか
ルーム名一覧は別途Lambdaなどの別の WebAPI で取得できれば良い
別の方法にすればパスワードでルームを保護することも自由だし、一覧に情報を付加しやすい
アプリケーションを強制終了させたり、ルームメンバーが消えた時などはどうする?
→アプリ終了時に Disconnect する直前にルームを退出できる
退出と入出ごとにルーム情報を更新できればいける
いろいろ、答えは README に書いてあった
github.com
読む、理解するで疑問は解決できた