【Unity】Sliderの使い方とリアルタイムで値を取得する方法

はじめに
この記事ではSliderの使い方を紹介します。
準備
GameObject > UI > Slider でスライダーを設置。
音量調節のようなオブジェクトが設置されますので、
ゲームを実行してドラッグすれば動かせます。
このSliderとゲーム中の数値を結びつけることで、
HPバーや音量調節といったことが行えます。
インスペクターからSliderを操作する
Sliderで主に変更するのは、
- Direction(スライダーの変化の向き)
- Min Value(最小値の設定)
- Max Value(最大値の設定)
- Whole Numbers(チェックを入れると整数のみに制限)
- Value(現在値)
です。
これらの値がゲーム中変化しないのであれば、
このままインスペクター上で数値を打ち込めばいいです。
スクリプトでSliderを操作する
では、スクリプトでスライダーの値を制御していきます。
なお、この記事では、スライダーにスクリプトをアタッチして使用します。
Canvas等にアタッチする場合は
GameObject.Find 等からスライダーを取得してください。
参考記事
【Unity】Tagを使用した高速なオブジェクトの参照方法「FindWithTag」
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Test : MonoBehaviour
{
Slider hpSlider;
// Use this for initialization
void Start()
{
hpSlider = GetComponent<Slider>();
float maxHp = 200f;
float nowHp = 100f;
//スライダーの最大値の設定
hpSlider.maxValue = maxHp;
//スライダーの現在値の設定
hpSlider.value = nowHp;
}
// Update is called once per frame
void Update()
{
}
}SliderはUI(ユーザーインターフェース)のコンポーネントなので、
取得する際は以下を追加してください。
using UnityEngine.UI;続いて、Slider型を宣言し、コンポーネントを取得。
Slider hpSlider;
hpSlider = GetComponent<Slider>();「maxValue」でスライダーの最大値の設定、
「value」で現在のスライダーの値を設定できます。
//スライダーの最大値の設定
hpSlider.maxValue = maxHp;
//スライダーの現在値の設定
hpSlider.value = nowHp;
実行すると以下のようになります。
スライダーの変化を察知してメソッドを実行する方法「On Value Change」
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Test : MonoBehaviour
{
Slider hpSlider;
// Use this for initialization
void Start()
{
hpSlider = GetComponent<Slider>();
float maxHp = 200f;
float nowHp = 40f;
//スライダーの最大値の設定
hpSlider.maxValue = maxHp;
//スライダーの現在値の設定
hpSlider.value = nowHp;
}
// Update is called once per frame
void Update()
{
}
public void Method()
{
Debug.Log("現在値:" + hpSlider.value);
if (hpSlider.value >= 50)
{
Debug.Log("50以上です");
}
}
}実行結果
//スライダーを動かしたとき
現在値:○○
//現在値が50以上の時
50以上です。リアルタイムに値の変化を取得するには、
「On Value Change」を使用します。
「On Value Change」の右下にある+マークを押してください。
スクリプトがアタッチされているオブジェクトを
Noneのところへドラッグ&ドロップし、
No Functionタブで使用したいメソッドを選択してください。
これでゲームを実行し、スライダーを動かすと、
スライダーのvalueが変更されるたびに
メソッドが実行されます。



