[Unity] 現在時刻をUI機能のTextで表示させる
備忘録です。
目的
時計アプリを作る際に必要不可欠な、リアルタイム更新されるテキスト系の時計を用意する。
テキストを用意する
Hierarchyビュー上で右クリック -> UI -> Text で
Canvas内にTextが生成される。
ゲームビューを確認しつつテキストの位置やサイズ等を設定する。(詳細は割愛する)
コードを書く
Projectビュー上のAssetsで右クリック -> Create -> C# Script で
C#スクリプトを生成してコードを書く。
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TimeNowScript : MonoBehaviour {
private Text ClockText;
// Use this for initialization
void Start () {
ClockText = GetComponentInChildren<Text>();
}
// Update is called once per frame
void Update () {
ClockText.text = DateTime.Now.ToLongTimeString();
}
}
コードの補足
参照の追加
using System;
using UnityEngine.UI;
参照にこの2つを追加した
DateTime関連の参照にSystem、UnityのUI関連にUnityEngine.UIが使われる
タイマーを表示するテキスト
private Text ClockText;
classの代わりにTextと記述する
Textコンポーネントを取得
void Start () {
ClockText = GetComponentInChildren<Text>();
}
親子関係にある子オブジェクトからTextコンポーネントを取得する
記述し忘れるとNullReferenceException: Object reference not set to an instance of an objectになる
現在時刻を取得
void Update () {
ClockText.text = DateTime.Now.ToLongTimeString();
}
デバイスから現在取得し、テキストにリアルタイム反映させる
ToShortTimeString()の部分は以下に直すことで別の形式で反映させることができる
// 時、分を取得する(hh:mm (AM/PM))
ClockText.text = DateTime.Now.ToShortTimeString();
// 時、分、秒を取得する(hh:mm:ss (AM/PM))
ClockText.text = DateTime.Now.ToLongTimeString();
// 日付を取得する(MM/dd/yyyy)
ClockText.text = DateTime.Now.ToShortTimeString();
// 日付を取得する(曜日,日付,yyyy)
ClockText.text = DateTime.Now.ToLongTimeString();
アタッチする
書いたスクリプトを、生成したテキストにアタッチして、Playして動作を確認する。
おまけ
上の画像のようにテキストに影をつける場合、
テキストのInspectorビューの下部のAdd Component -> 検索欄にShadowと入力 -> Shadow で
くっきりとした影をつけることができる(位置調整、色、透明度の設定も可能)。
Author And Source
この問題について([Unity] 現在時刻をUI機能のTextで表示させる), 我々は、より多くの情報をここで見つけました https://qiita.com/routehachi/items/408fe302746575098e01著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .