Unity C# 簡易倒數計時器
- 此篇重點語法 * * * * *
→ InokeRepeating 重複呼叫(“函式名”,第一次間隔幾秒呼叫,每幾秒呼叫一次)。
e.g. InvokeRepeating("timer", 1, 1);
→ CancelInvoke 取消重複呼叫(“函式名”)。
e.g. CancelInvoke("timer");
- 此篇效果-簡易計時器 * * * *
- 大概了解重點後,接下來進入完整教學 -
一、 在場景中新增一個Text (顯示倒數的數字)。
GameObject→UI→Text,放置到自己喜歡的位置。
二、 接下來就是撰寫程式碼 !
1. 先新增一個C#,並拖曳到Text中。
2. 先看看完整程式碼 ( 下一點有程式碼解析 ! )
檔案名稱與public class的名稱記得要一樣哦!!! (不然會出現錯誤!)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; //使用Unity UI程式庫。
public class time : MonoBehaviour {
int time_int = 3;
public Text time_UI;
void Start(){
InvokeRepeating("timer", 1, 1);
}
void timer(){
time_int -= 1;
time_UI.text = time_int + "";
if (time_int == 0) {
time_UI.text = "time\nup";
CancelInvoke("timer");
}
}
}
3. 程式碼解析
using UnityEngine.UI;
//使用Unity UI程式庫。 (Text是UI的一部份哦! 要使用就必須要加,不然會出現錯誤!)
int time_int = 3;
//宣告倒數的時間 (time_int )為整數( int) 3。
// int : 整數。
public Text time_UI;
//宣告顯示倒數時間的文字(程式碼完成後,要將Text放入!)。
//public 公開 –
在宣告前面加上public,程式碼底下會出現欄位,可以從外部放入指定的物件(要與宣告類型相同哦!)。
void Start(){ //一開始就執行倒數計時。
InvokeRepeating("timer", 1, 1);
//一秒後,每秒重複呼叫timer函式。(開始倒數計時)。
//InokeRepeating 重複呼叫(“函式名”,第一次間隔幾秒呼叫,每幾秒呼叫一次)。
}
void timer(){ //自訂一個函式叫做timer。
time_int -= 1;
//每次呼叫倒數的時間就扣1。
time_UI.text = time_int + "";
//將倒數的時間顯示在倒數時間的文字上。
if (time_int == 0) {
//如果倒數時間為0 (也就是時間到!)。
time_UI.text = "time\nup";
//倒數時間的文字上就會顯示time up。
// "\n" : 換行。
CancelInvoke("timer");
//取消重複呼叫timer函式。(停止倒數計時)
//CancelInvoke取消重複呼叫(“函式名”)。
}
}
4. 將剛剛宣告 public Text time_UI; 產生的欄位,放入指定物件。
5. 大功告成!!!!!
- 複習重點語法 * * * * *
→ InokeRepeating 重複呼叫(“函式名”,第一次間隔幾秒呼叫,每幾秒呼叫一次)。
e.g. InvokeRepeating("timer", 1, 1);
→ CancelInvoke 取消重複呼叫(“函式名”)。
e.g. CancelInvoke("timer");
-------------------------------------------------------------------------------------------------------------------------------------
我們有粉絲專頁囉!!!
如果怕有問題連絡不到我們,歡迎隨時私訊FB粉專哦!!!
https://www.facebook.com/Straying2018/
● 如果這篇文章有幫助到您,希望您能留言給予我們鼓勵 !
● 對於文章有任何的建議,非常歡迎留言告訴我們哦 !!!
● 有任何想知道的功能也歡迎告訴我們,我們會盡快寫成部落格分享給大家 !
- By Cindy -

寫得頗清楚 好用!
謝謝你的鼓勵!!
你好,我遇到unity script 上的瓶頸了... 我想要做一台可以180度轉動的發射器。按空白鍵後可以朝發射器指向的方向射出子彈。我用 transform.rotation = Quaternion.Euler(0f, maxRotation * Mathf.Sin(Time.time * speed), 0f)來寫發射器,但不知道怎麼讓子彈用我希望的角度射出,我用這個寫, float x = 3 * Mathf.Sin(maxRotation * Mathf.Sin(Time.fixedTime * rotateSpeed)); float z = 3 * Mathf.Cos(maxRotation * Mathf.Cos(Time.fixedTime * rotateSpeed)); Vector3 direction = new Vector3(x, 0f, z); rb.AddForce(direction * speed); 但結果是子彈亂跑...請問有什麼建議的方法嗎?
您好 抱歉這麼晚才回覆 不知道您是否已經解決了呢? 我的作法會是在炮口建立一個空物件當子彈生成點, 建立一個子彈物件,並且掛一個script,裡面有往前方移動的程式碼。 按空白鍵後 -> 生成子彈物件在子彈生成點。 (因為子彈物件中有往前方移動的程式碼,所以就會自動射出了) 不知道這樣有沒有幫助到您呢? 希望您看到時可以告訴我們您的狀況XD 若之後有其他問題可以直接密FB粉絲專頁哦 那邊我們會比較容易注意到訊息 ^^
謝謝嚕,很實用
謝謝你!!
我還是第一次看到如此詳細講解的教學文
謝謝你 太感動了哈哈XD
粉專消失了qq
您好~ 不好意思因為太忙了,所以先暫時關閉粉專XD