動作確認
Unity 5.1.1f-1 on Mac OS X 10.8.5
マウスのwheelを使って、Scrollbarのvalueを動かす。
準備
- UI > Scrollbarを追加する。名前をScrollbar1にする (スクリプトと合わせる)
- Scrollbar1 > Scrollbar (Script) > Directionを "Top to Bottom"にする
- 以下のScrollHandle.csをScrollbar1に関連付ける
code
ScrollHandle.cs
using UnityEngine;
using System.Collections;
using UnityEngine.UI; // for Scrollbar
public class ScrollHandle : MonoBehaviour {
private void changeScrollBarValue(string scrollBarName, bool isUp) {
GameObject work = GameObject.Find (scrollBarName);
if (work) {
float aRatio = work.GetComponent<Scrollbar>().value;
if (isUp) {
aRatio -= 0.05f; // for from top to bottom direction
} else {
aRatio += 0.05f; // for from top to bottom direction
}
work.GetComponent<Scrollbar>().value = aRatio;
}
}
void OnGUI() {
float val = Input.GetAxis ("Mouse ScrollWheel");
if (val > 0.0f) {
changeScrollBarValue("Scrollbar1", /* isUp=*/true);
Debug.Log ("up");
} else if (val < 0.0f) {
changeScrollBarValue("Scrollbar1", /* isUp=*/false);
Debug.Log ("down");
} else {
// do nothing
}
}
}