見出し画像

【Unity】 スライダーを用いたタイマー機能の実装 (00:00の形) 〜プログラム解説〜

今回参考にさせていただいた資料は
Unity2019 C#スクリプト 超入門
です.[1]


他にも,C# について分かりやすく解説されているサイトがあったので共有させていただきます.[2]



□ 説明 & 環境

【説明】
資料を参考にして,
勉強になった点 → POINT!
失敗した点→ ERROR!
補足した点 → ADD!

と表記しています.

【環境】
MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports)
HUAWEI nova lite3
Unity 2020.3.15f2 LTS
※ Unity内の画面レイアウトは異なるかもしれません.



□ 完成図

前回 は,実装 をしてきました.
今回 は,プログラム (C#) の解説 をしていきたいと思います.

前回あたりからプログラムを理解しないと実装できなくなってきていたため,
プログラムを少しずつ理解していきたいと思います.


画像1




□ 解説

(Timer3.cs)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;


public class Timer3 : MonoBehaviour
{

   // 1
   float t = 0;
   // 2
   public Text txt;
   Slider slider;

   // 3
   void Start()
   {
       txt = (GameObject.Find("Text")).GetComponent<Text>();
       slider = (GameObject.Find("Slider")).GetComponent<Slider>();
       slider.maxValue = 180.0f;
   }
   // 4
   bool a;


   void Update()
   {
       if (!a)
       {
           t = slider.value;
           float minutes = Mathf.FloorToInt(t / 60);
           float seconds = Mathf.FloorToInt(t % 60);
           txt.text = string.Format("{0:00}:{1:00}", minutes, seconds);
       }
       
       else
       {
           t -= Time.deltaTime;
           
           if (t < 0) 
           { 
           a = false; 
           t = 0; 
           }
           
           DisplayTime(t);
       }
   }



   public void Click()
   {
       a = true;
   }



   void DisplayTime(float timeToDisplay)
   {
       timeToDisplay += 1;

       float minutes = Mathf.FloorToInt(timeToDisplay / 60);
       float seconds = Mathf.FloorToInt(timeToDisplay % 60);

       txt.text = string.Format("{0:00}:{1:00}", minutes, seconds);
   }


}


今回解説したいのが 以下の 4点 です.

1. float型
2. publicとplivate
3. Start関数 と Update関数
4. bool



1. float型

int型やfloat型について書かれている記事があったので共有させていただきます.[1]


コードを見ているとよく,int や float という文字を見かけることがありました.
調べてみると,int や float は「型」と呼ばれ,数字を扱うときに用いられます.

整数 int (符号付き32ビット整数)
実数 float (32ビット単精度実数)

123 など小数点以下の値を持たない数(整数)を扱うときには,int 型を使います.

// 使用例
void Start()
{
   int x=10;
   int y=5;
   int z=x+y;
}

123.4 など小数点以下の値を持つ数(実数)を扱うときには,float 型を使います.float型を扱う上でのポイントは,数字の後ろに必ず「f」をつけるということです.

// 使用例
void Start()
{
   float x=180.0f;
}


整数の型は,int型の他に,byte,  short, long など様々な型があるそうですが,とりあえず int型 さえ覚えておけばよさそうです.

実数の型は,float型と,double型があります.
こちらも float型 さえ覚えておけばよさそうです.


2. public と private

これらは「アクセス制限」に関する機能です.

public は他からアクセスできる
private は他からアクセスできない

「public」を使うことで,プログラムの値等を外部からでも変更させることができます.制限がないため,どこからでもアクセスできるようになります.
「private」 は外部からアクセスすることはできません.privateは省略されることもあります.

public がある時

画像4

画像5

このように Txt が表示され,外部から変えることができます.


public がない時

画像2

画像3

Txt という文字が出ず外部から変えることができません.


3. Start関数 と Update関数

Start関数
Update関数が最初に呼び出される前に1回だけ呼び出される関数
初期設定などに使われます.

Update関数
1フレームに1回呼び出される関数
1フレームごとに呼び出されるので頻繁に更新したいときに使います.


3. bool

bool (真偽値)とは,真か儀かを示すためのもので,二者択一の状態を示すのときに用いられます.「true」「false」のいずれかで用いられます.

true 正しい状態
false 間違った状態



□ まとめ

これまでなんとなく使っていた関数を理解することができて勉強になりました.
(解説になってるのか不安です...)
近いうちにUnity辞典を作りたいと考えています!
もっとUnityについて理解できるよう頑張ります.


21/10/20

この記事が気に入ったらサポートをしてみませんか?