本日はHoloLens 調査枠です。
昨日に引き続き腕時計を作ります。
昨日は腕にリングが表示されるところまでを作成しました。本日は時計の表示を行います。
〇時計の機能
デバイス内で現在時刻を取得するためにはSystem.DateTimeを使用します。
using System;
public class hoge
{
float _time//現在時刻
Start ()
{
_time = DateTime.Now;
}
}
今回は次のようなスクリプトを書きました。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using TMPro;
public class watch : MonoBehaviour
{
[SerializeField]
TextMeshPro _dayText;
[SerializeField]
TextMeshPro _timeText;
// Update is called once per frame
void Update()
{
_dayText.text = (DateTime.Now.Month.ToString() +"/"+DateTime.Now.Day.ToString());
_timeText.text = (DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString()+":"+DateTime.Now.Second.ToString());
}
}
Update関数で毎フレーム現在時刻を参照してTextMeshProのテキストに反映します。
このコンポーネントを昨日作成したリングのオブジェクトにアタッチします。

次にリングオブジェクトの子オブジェクトとしてTextMeshProを二つ作成します。

作成したTextMeshProを[TimeText]、[DayText]と名付けます。

[TimeText],[DayText]はそれぞれ時間と日付を示すテキストになります。
このテキストをリングに配置します。

リングにアタッチした[watch]コンポーネントの[TimeText],[DayText]にそれぞれ作成したTextMeshProをアタッチします。

以上で時計が完成しました。
Unityを実行します。

手首に沿ってリングが表示され、日付と時間が表示されるようになりました。
以上でHoloLens 2で機能する腕時計が完成しました。