Unity 4.6の新GUIをC#で利用する (3/5)
作成:2014-09-27 10:20
更新:2014-09-27 10:20
更新:2014-09-27 10:20
■ButttonのOnClickイベントを利用する
では、Buttonをクリックして、InputFieldのテキストを取り出し、msgTextに表示する、といった処理を作成してみましょう。まずは、Buttonに「ボタンをクリックしたらGuiObjクラスのButton1Clickメソッドを実行する」という設定を組み込みます。
Buttonを選択し、インスペクターを見ると、「Button (Script)」というところに「On Click()」という項目があることがわかります。これは、OnClickイベント(クリックした時に発生するイベント)で実行する処理を設定するためのものです。
この部分の右下にある「+」マークをクリックすると、項目が新たに追加され、そこに2つの設定項目が用意されます。1つ目が「None(Object)」と表示され、右側にある2つ目のものは「No Function」と表示されています(ただし、2つ目は選択できない状態です)。この2つの項目は、1つ目が「ゲームオブジェクト」、2つ目が「実行するメソッド」を指定するためのものになります。
では、1つ目(左側)の項目から、実行したい処理があるスクリプトが組み込まれているゲームオブジェクトを選択しましょう。ここではCanvasにスクリプトを組み込んでいますから、項目のすぐ右にある◎マークをクリックして、現れたウインドウから「Canvas」を選択しましょう。
これで2つ目のポップアップメニューが選択できるようになります。ここから、<GuiObj>内にある<Button1Click()>を選んで下さい。これで、OnClickイベントが発生したら、Canvasに設定してあるGuiObのButton1Clickメソッドが実行される、という設定が用意できました。
では、プログラムを完成させましょう。MonoDevelopで、GuiObjに用意しておいたButtonClickメソッドを、下のリスト欄のように変更して下さい。1行追記しているだけですね。
これで完成です。シーンを実行し、現れたGUIの入力フィールドに何か書いてから、ボタンをクリックして下さい。その上に入力したテキストが表示されます。
ここでは、InputFieeld(fieldフィールド)に入力された値を、messageText(msgTextフィールド)に表示する、ということをしています。やっていることはとても単純ですね。
msgText.text――messageTextに表示されているテキスト
field.value――InputFieldに入力された値
このように「text」プロパティで表示テキストを、「value」プロパティで設定された値をそれぞれ指定しています。この2つがわかれば、入力した値を表示する、といったことはすぐにできるようになるのです。
Buttonを選択し、インスペクターを見ると、「Button (Script)」というところに「On Click()」という項目があることがわかります。これは、OnClickイベント(クリックした時に発生するイベント)で実行する処理を設定するためのものです。
この部分の右下にある「+」マークをクリックすると、項目が新たに追加され、そこに2つの設定項目が用意されます。1つ目が「None(Object)」と表示され、右側にある2つ目のものは「No Function」と表示されています(ただし、2つ目は選択できない状態です)。この2つの項目は、1つ目が「ゲームオブジェクト」、2つ目が「実行するメソッド」を指定するためのものになります。
では、1つ目(左側)の項目から、実行したい処理があるスクリプトが組み込まれているゲームオブジェクトを選択しましょう。ここではCanvasにスクリプトを組み込んでいますから、項目のすぐ右にある◎マークをクリックして、現れたウインドウから「Canvas」を選択しましょう。
これで2つ目のポップアップメニューが選択できるようになります。ここから、<GuiObj>内にある<Button1Click()>を選んで下さい。これで、OnClickイベントが発生したら、Canvasに設定してあるGuiObのButton1Clickメソッドが実行される、という設定が用意できました。
■Button1Clickメソッドを用意する
では、プログラムを完成させましょう。MonoDevelopで、GuiObjに用意しておいたButtonClickメソッドを、下のリスト欄のように変更して下さい。1行追記しているだけですね。
これで完成です。シーンを実行し、現れたGUIの入力フィールドに何か書いてから、ボタンをクリックして下さい。その上に入力したテキストが表示されます。
ここでは、InputFieeld(fieldフィールド)に入力された値を、messageText(msgTextフィールド)に表示する、ということをしています。やっていることはとても単純ですね。
msgText.text――messageTextに表示されているテキスト
field.value――InputFieldに入力された値
このように「text」プロパティで表示テキストを、「value」プロパティで設定された値をそれぞれ指定しています。この2つがわかれば、入力した値を表示する、といったことはすぐにできるようになるのです。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
public void Button1Click () { msgText.text = "typed '" + field.value + "'."; }
※関連コンテンツ