Unity指令碼開發之常用工具類
阿新 • • 發佈:2019-02-12
一、Time類
Time時間類為開發者提供了一些在程式執行時時間上的處理函式,我們可以非常方便的提供給我們使用
在Time中提供的一些函式有:
//記錄上一幀所消耗的時間,會受時間縮放的影響
public static float deltaTime { get; }
//記錄從程式執行到現在的時間會受時間縮放的影響
static float time { get; }
//設定遊戲裡面的時間與現實世界裡的時間縮放,即現實世界的時間 X 縮放比例
static float timeScale { get; set; }
//從遊戲執行到現在的真實事件
static float realtimeSinceStartup { get ; }
二、隨機數類
隨機數類為我們提供了一些隨機數的函式:
static int Range(int min, int max);
//生成一個隨機浮點數
st**重點內容**atic float Range(float min, float max);
三、數學運算類
在數學類中定義了我們常需要的數學計算方式,非常方便的一些數學運算。
四、四元數
四元數通常用於控制物體的旋轉功能
//控制繞某個軸旋轉
Quaternion Euler(Vector3 euler);
Quaternion Euler(float x, float y, float z);
五、輸入控制類 Input
在Unity3D中將輸入控制分為3種狀態,分別是按下、一直處於按下狀態、擡起狀態,Unity提供輸入函式的類為 Input類
1、鍵盤的三種狀態
//當按鍵一直處於按下狀態時重複呼叫這個函式
static bool GetKey(KeyCode key);
//當按鍵剛按下時呼叫一次這個函式
static bool GetKeyDown(KeyCode key);
//當按鍵被按下後擡起時呼叫一次這個函式
static bool GetKeyUp(KeyCode key);
/*
keyCode類中定義類我們鍵盤上的常用按鍵的型別
*/
2、滑鼠的三種狀態
//滑鼠的三種狀態和鍵盤的按鍵的三種狀態相同
public static bool GetMouseButton(int button);
public static bool GetMouseButtonDown(int button);
public static bool GetMouseButtonUp(int button);
/*
在三個引數中傳遞的是一個整形數字
0 :代表滑鼠的左鍵
1:代表滑鼠的右鍵
2:帶表滑鼠的中建
*/
2、適用於觸控式螢幕輸入
在Unity中為我們定義了一個Touch類用於定義觸控式螢幕上的輸入控制
/*
Touch類中的常用屬性
*/
public int fingerId { get; } //獲取到當前觸控手指的編號
public Vector2 position { get; }//觸控點的位置
TouchPhase phase { get; } //當前觸控事件的型別
/*
Unity為我們提供了幾種觸控型別事件
*/
public enum TouchPhase
{
Began = 0,//剛開始觸控到觸控式螢幕
Moved = 1,//當手指觸控到螢幕上以後進行移動
Stationary = 2,//當手指觸控在觸控式螢幕上後並未離開,而是靜止不動
Ended = 3,//結束觸控手指離開螢幕
}
/*
在Input類中通過一個屬性來獲取當前所有的觸控資訊:
Input.touches來獲取所有的觸控資訊。
*/
//列如:
void OnGUI()
{
//迴圈獲取當前螢幕的觸控資訊
foreach(Touch touch in Input.touches)
{
GUILayout.Label(string.Format("手指{0} 狀態{1} 位置 {2}", touch.fingerId, touch.phase.ToString(), touch.position));
}
}
六、Unity除錯類
在Unity中專門為我們提供了一個除錯應用程式的類,在這個類中提供類在不同條件下列印不同的除錯資訊的方法:
Debug.Log()//打印出普通灰色的訊息
Debug.LogError(); //打印出黃色警告訊息
Debug.LogWarning(); //打印出紅色錯誤訊息
//在Unity程式進行編譯的時候Unity內部也會根據程式的編譯結果打印出相應的訊息
列如 :
void OnGUI()
{
if(Input.GetMouseButtonDown(0))
{
Debug.Log("普通訊息");
}
if(Input.GetMouseButtonDown(1))
{
Debug.LogError("錯誤訊息");
}
if(Input.GetMouseButtonDown(2))
{
Debug.LogWarning("警告訊息");
}
}
列印結果: