Unity 4.6の新GUIを利用する (5/5)
作成:2014-08-25 08:24
更新:2014-08-25 08:24
更新:2014-08-25 08:24
■Toggle/SliderのOnValueChangedイベントを利用する
では、スクリプトを完成させましょう。下のリスト欄に掲載しておくので、この通りにui-scriptを記述して下さい。
記述したら、ここに用意した関数を、ToggleとSliderのイベントに設定します。
●Toggleのイベント
Toggleを選択し、インスペクターを見ると、下の方に「On Value Changed(Boolean)」という項目が見つかります。これは、GUI部品の値が変更された際に発生するイベントです。この「+」マークをクリックし、項目を追加して下さい。そして新たに用意された項目を以下のように設定します。
●Sliderのイベント
続いて、Sliderを選択し、インスペクターから、やはり「On Value Changed(Single)」という項目を探して下さい。そして「+」マークをクリックし、新たに作成された項目を以下のように設定します。
ここまでできたら、シーンを保存して実行してみましょう。そしてチェックボックス(Toggle)やスライダーを操作してみてください。操作して値が変更されるとその場でテキストの表示が変わります。
ここでは、OnChangeToggleとOnChangeSliderで、ToggleとSliderの値を使ってメッセージを表示しています。Toggleのチェック状態は「isOn」という真偽値のプロパティとして用意されています。またSliderの値はvalueで取り出すことができます。
なお、ここではSliderの値はsingle値(整数値)になっていますが、これはWhole NumbersをONにして整数値だけが設定されるようにしたからです。これがOFFの場合は、valueの値はfloatになります。
――とりあえず、これでGUIの基本的な部品のイベントと値を操作するための基本はだいたいわかりました。実際にGUIを使ってゲームの設定画面などを作ってみましょう!
記述したら、ここに用意した関数を、ToggleとSliderのイベントに設定します。
●Toggleのイベント
Toggleを選択し、インスペクターを見ると、下の方に「On Value Changed(Boolean)」という項目が見つかります。これは、GUI部品の値が変更された際に発生するイベントです。この「+」マークをクリックし、項目を追加して下さい。そして新たに用意された項目を以下のように設定します。
「Canvas」「ui-scriptのOnChangeToggle」
●Sliderのイベント
続いて、Sliderを選択し、インスペクターから、やはり「On Value Changed(Single)」という項目を探して下さい。そして「+」マークをクリックし、新たに作成された項目を以下のように設定します。
「Canvas」「ui-scriptのOnChangeSlider」
ここまでできたら、シーンを保存して実行してみましょう。そしてチェックボックス(Toggle)やスライダーを操作してみてください。操作して値が変更されるとその場でテキストの表示が変わります。
ここでは、OnChangeToggleとOnChangeSliderで、ToggleとSliderの値を使ってメッセージを表示しています。Toggleのチェック状態は「isOn」という真偽値のプロパティとして用意されています。またSliderの値はvalueで取り出すことができます。
なお、ここではSliderの値はsingle値(整数値)になっていますが、これはWhole NumbersをONにして整数値だけが設定されるようにしたからです。これがOFFの場合は、valueの値はfloatになります。
――とりあえず、これでGUIの基本的な部品のイベントと値を操作するための基本はだいたいわかりました。実際にGUIを使ってゲームの設定画面などを作ってみましょう!
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
#pragma strict var messageText:UI.Text; var toggle:UI.Toggle; var slider:UI.Slider; function Start () {} function Update () {} function OnChangeToggle() { if (toggle.isOn){ messageText.text = "チェックはONです。"; } else { messageText.text = "チェックはOFFです。"; } } function OnChangeSlider() { messageText.text = "slider = " + slider.value; }
※関連コンテンツ
「JavaScriptではじめるUnityプログラミング入門」に戻る