04ハルシオンシステムの気ままBlog株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。NGUIおはようございます!おなじみ坂内です。花粉やばいっす!なんか今日はそれほどじゃないんですが、土日がやばかった!スマホから半径1mの花粉をやっつけてくれるアプリないですかねーえ?物理的にむりだって?了解!本日はダイアログについてです。ゲームにダイアログって必須ですよね?でもネットで調べても素敵な方法が出てこない!(OnGUIのダイアログは色々でてきますが)ということで、NGUIでダイアログつくってみよー的な感じです。ボタンとダイアログの背景の絵を用意します。これをAtlasに組み込んでおきます。Scriptも作っておきます。ダイアログにて、OK・NOを押した時の処理とりあえずこんな感じで考えてみましたが、どうなんだろう。DialogControlにてボタン押した時の処理をするのが一番早いんだけど、そうなるとDialogControlという名前に違和感が・・ってことで、処理はMainControlの方に置いておきます。(こんな感じでいいのかな?)で、中身はまずはこんな感じ。CloseDialog(){Destroy(gameObject);}}どうでしょう。こんな感じで動きそうじゃないっすか?んじゃボタンを作ってみましょう。上のオブジェクトの名前を「Test」にして、このオブジェクトにMainControlをつけておきます。DialogControlのClick_OKメソッドで呼ばれるオブジェクトになります。ここで、mainPanelというPanel。dialogというPanelを用意しました。mainPanelにはボタンを追加しています。ボタンの方にはNGUIのUIButtonMessageやUIButton等のコンポーネントをつけて、MainControlのOpenDialogを呼ぶようにします。次にダイアログを作っていきます。ダイアログはPrefabにして置いておくのでどんな形でもいいですが、今回はPanelを用意し、その下にダイアログの背景、ボタン等を作成します。(ここが不明なんですが、ふつうはどうするんだろう?)メインパネルの表にダイアログが来ないといけないので、mainPanelのDepthは「0」にdialogのDepthは「1」にしています。dialogの子供にバックグラウンドとボタンを二つ作成しました。押してる感を出すため、各ボタンにはNGUIのUIButtonScaleをくっつけてみます。その後、dialogのオブジェクトにはDialogControlをつけます。OKボタンとNOボタンに先ほど作ったDialogControlのメソッドをくっつけてやります。ここまでできたら、ダイアログ側のオブジェクト完成です!ダイアログ側の処理が全部作れたら、プレハブにしちゃいます。プレハブ化が終わったら、ヒエラルキーからdialogをけしまーす。dialogPref」で用意したdialogPrefに先ほど作成したdialogのプレハブをつけます。