✨
Unity uGUIで挑戦したいUI設計 [経験談]
UI設計で重視していること
UIが整っていれば大体神ゲーになる。少なくとも私はそう信じてます。
私が次に作る際に挑戦したいことを一旦一般的な常識を無視して書きます。
ご了承いただければ嬉しいです。
GUI専用のカメラを作ろう
これは3Dゲーム開発には関係ない話かもしれません。
Balatroやポケポケなどの立体感ある表現をする場合
GUIに使用しているカメラのProjectionがPerspectiveでないといけません。
一応私の認識としては以下のようになってますね
-
Perspectiveは3D用カメラ -
Orthographicは2D用カメラ
結論
| 3Dゲーム | 2Dゲーム | |
|---|---|---|
| ゲームカメラ | Perspective | Orthographic |
| GUIカメラ | Perspective | Perspective |
実際に私、仕様変更でゲームが3D->2Dになった経験があるため、
カメラを分けておくと変更が楽になります。
MVrPでUI更新を楽にしよう
MVrPとはModel,View,reactivePresenterの略です。
詳細は他の記事にあると思うので端折ります。
よくPlayerのUIをUpdate()で更新していましたが面倒くさかったです。
PlayerクラスからすればGUIなんて関係ない話。
ですがGUIクラスからしてもPlayerクラスは関係ない話。
GUIはできるだけ再利用できた方がデザインコストもコード数も減らせるでしょう。
なので、以下の図のように
Playerステータスの参照とGUIの処理はPresenterに全部任せるのが楽ですね。
Presenterには橋渡しの中間管理職になってもらいます。
レイヤードアーキテクチャ等に合わない?今回は無視で
結論
MVrPを使えば、GUIの付け外しが楽になります。
基本R3のReactivePropertyまたはSubjectを用いて更新すると良いでしょう。
まとめ
UIはゲームの入力出力の部分であります。
プレイヤーが迷わず操作できるほど、楽しんでいただけると思います。
次こそはカメラを2つに分け、R3をGUIのみに使えば、UI整ってる神ゲーに一歩近づけるはずです。
Discussion