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