これまた下書きのままずっと放置されていた記事
Unity のコンポーネントが Start や Awake で好き放題やるのは、引き継いだり後から見直したときに
全体で何しているかわからないので、例えばオンラインのログイン完了後に処理してほしいとかそういうの指示するとき困るよね
これをどうするか考えた記事
開始フロー
調べてみると、各コンポーネントがスタート時に自由に開始していました。
やりたいことはゲームのタイトル情報、プレイヤーの現在の状況を読み込んでから
タイトルメニューで情報表示
プレイヤーの現在の状況から再スタート
バージョンとIDの表示だが
まずプレイヤーIDとは?
PlayFabID をユーザーに渡さずに、他のプレイヤー情報を取得するのに GenericID を使う感じかな?https://t.co/I7ugnSx5oy
— Simplestar@Unityゲーム開発 (@lpcwstr) 2020年1月2日
なるほどGenericIDとして、これを使ってサーバーAPIでPlayFabIDを問い合わせることができる
GenericIDの実態はサービス名とIDのペア
これを見てひらめいたのは、ゲーム内のキューブにGenericIDを刻み込み
サービス名はワールド名とし、IDにはワールド内の位置インデックス0~1700万くらいFFFFFFとする
ぎりぎり
その位置とキャラクターを結ぶようにGenericIDを加える
そうすれば、キューブ内のデータに描画用の情報を詰めてもよいことになる。
これがプレイヤー復活のためのメモリーキューブで、開始時にプレイヤーはしゃがんだ状態でキューブと交換するようにして現れることになる
開始フローを決める前に、まだまだ、そういうことしたいと思っていて要素がそろいきっていないことがわかった。
結論
最終的に GameManager が各種イベント接続をするコードを担当
そこを見ればゲームの処理の流れが追えるようになりました。
あとからどういうゲーム実装だっけ?と思って実装を読んだときに GameManger だけ読めば漏れなくわかる
というのを目指します。