チラ裏Unity

主にUnityについての備忘録ですが誰か様の為になれば

uGUIでスライダーのイベントを取得

Unity 4.6から追加されたUIシステム(通称uGUI)でスライダーのイベントを取得

 

開発環境

  • OS X 10.6.8
  • Unity 4.6.0

 

手順

  1. GameObject -> UI -> Sliderでシーン上にスライダーを作成
  2. 作成したスタイダーに以下のスクリプトコンポーネントとして付加
    using UnityEngine;
    using UnityEngine.UI;

    public class TestSlider : MonoBehaviour {

        void Start () {
            Slider slider = this.GetComponent <Slider> ();
            slider.onValueChanged.AddListener((value) => {
                Debug.Log(value);
            });
        }
    }
  3. シーンを実行してスライダーを操作すると、デバッグログでスライダーの値が出力されます

 

補足

f:id:hwks:20141215011319p:plain

上図のようにInspector上でコールバック関数を設定することも出来るのですが、スライダーの値をコールバック関数で引数として受け取るためにスクリプトから設定しています

また、AddListenerを使って(non persistent)コールバック関数を設定した場合は「Runtime Only」となるようです

Inspectorを使って(persistent)設定した場合は「Off」「Editor And Runtime」「Runtime Only」から選択できるようです

http://docs.unity3d.com/460/Documentation/ScriptReference/Events.UnityEvent.AddListener.html

http://docs.unity3d.com/460/Documentation/ScriptReference/Events.UnityEventCallState.html