1. 程式人生 > >Unity指令碼開發之常用工具類

Unity指令碼開發之常用工具類

一、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("警告訊息");
        }
    }

列印結果:
、