気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
UnityやC#に限らず、たいていの言語で、(自力実装すれば)可能です。
もちろん、メニュー用のライブラリなどがあるかもしれませんが、
これくらい自力で作れた方が良いので、作り方の大枠を言います。
メニューの骨格は階層構造です。C#のようなオブジェクト指向言語では、
よくコンポジットパターンを使って、階層構造を再帰的に表現します。
メニューの項目が100個あるからといって、クラスを100個書く必要はありません。
コンポーネント、コンポジット、リーフの3クラスが基本です。(名前は何でも良い)
コンポジットとリーフがコンポーネントクラスを継承して、
コンポジットクラスがコンポーネント(コンポジットかリーフ)を
合成(デザインパターンとは別のコンポジット)する構造です。
これで木構造を走査できるので、あとは、押されたときに
ウィンドウを出したりする、個別のGUIの部分を書いていきます。
コンポジットは汎用的な仕組みで、別にメニュー専用ではありません。
ファイルシステムでのフォルダとファイルとか、
シューティングゲームでの親機と子機(親機を倒すと子が消滅するとか)とか、
さまざまな場面で応用が利きます。だから、覚えて損はないです。
投稿2017/11/17 11:20
総合スコア5592
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。