uGUIでスライダーのイベントを取得
Unity 4.6から追加されたUIシステム(通称uGUI)でスライダーのイベントを取得
開発環境
- OS X 10.6.8
- Unity 4.6.0
手順
- GameObject -> UI -> Sliderでシーン上にスライダーを作成
- 作成したスタイダーに以下のスクリプトをコンポーネントとして付加
using UnityEngine;
using UnityEngine.UI;
public class TestSlider : MonoBehaviour {
void Start () {
Slider slider = this.GetComponent <Slider> ();
slider.onValueChanged.AddListener((value) => {
Debug.Log(value);
});
}
} - シーンを実行してスライダーを操作すると、デバッグログでスライダーの値が出力されます
補足
上図のように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