モノ創りで国造りを

ハード/ソフト問わず知見をまとめてます

HIITトレーニング用のタイマーを自作する part2

HIITトレーニング用のタイマーアプリを作成してます。
途中経過ですが、現在こんな感じのUIになっています。
f:id:yuji2yuji:20180110001836p:plain
スライダー2本でトレーニング時間(最大60秒)と
休憩時間(最大でトレーニング時間の設定時間)が設定できます。
Nowに現在の、Nextに次の筋トレの種目が表示されます。

Unityでスライダーを使うのは初めてだったので少し手間どりました。
簡単に使い方を記載しておきます。
Hierarchyウィンドウで"右クリック" > "UI" > "Slider" を選択して
Sceneウィンドウにスライダーを配置。
同様にHierarchyウィンドウで"右クリック" > "UI" > "Text" で
テキストボックスも配置します。

次はスライダーの値を取得しテキストボックスに表示させるための
スクリプトを作成します。

public class sliderControl : MonoBehaviour {
    public Slider sliderTrain;
    public Slider sliderRest;
    public int trainTime = 10;
    public int restTime = 5;
    bool isStart;

    // Use this for initialization
    void Start () {
        sliderTrain.value = 0.2f;
        sliderRest.value = 0.5f;
    }
    
    // Update is called once per frame
    void Update () {
        trainTime = (int)(sliderTrain.value * 60);
        restTime = (int)(trainTime * sliderRest.value);
        Debug.Log("Train: " + trainTime + "秒");
        Debug.Log("Rest: " + restTime + "秒");
        GetComponent<Text>().text = "Training: " + trainTime + "秒" + "\n"
                                         + "Rest: " + restTime + "秒";
    }
}

このスクリプトを、先ほど作成したテキストボックスにアタッチします。
最後にテキストボックスのInspectorのScript欄に
値を取得したいスライダーのオブジェクトをドラッグアンドドロップ
これでスライダーを動かせばテキストが変化するようになりました。

めでたしめでたし。

次はUIボタンを使って、
時間の設定フェーズとトレーニングのフェーズを分けれるようにします。
アプリ開始時は時間設定フェーズ、ボタンを押せばトレーニング開始
という具合です。