夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

HoloLens 2で腕時計を作る その②

本日はHoloLens 調査枠です。

昨日に引き続き腕時計を作ります。

昨日は腕にリングが表示されるところまでを作成しました。本日は時計の表示を行います。

redhologerbera.hatenablog.com

〇時計の機能

バイス内で現在時刻を取得するためには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のテキストに反映します。

このコンポーネントを昨日作成したリングのオブジェクトにアタッチします。

f:id:Holomoto-Sumire:20201109085345j:plain

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

f:id:Holomoto-Sumire:20201109085824j:plain

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

f:id:Holomoto-Sumire:20201109090327j:plain

[TimeText],[DayText]はそれぞれ時間と日付を示すテキストになります。

このテキストをリングに配置します。

f:id:Holomoto-Sumire:20201109090101j:plain

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

f:id:Holomoto-Sumire:20201109090855j:plain

以上で時計が完成しました。

Unityを実行します。

f:id:Holomoto-Sumire:20201109091414g:plain

手首に沿ってリングが表示され、日付と時間が表示されるようになりました。

以上でHoloLens 2で機能する腕時計が完成しました。