Unity API 學習筆記——04

七、Input

1、獲取鍵盤輸入(返回值:bool)
(1)GetKey:按下某鍵後,持續返回true。
(2)GetKeyDown:按下某鍵的一瞬間,返回true。
(3)GetKeyUp:擡起某鍵的一瞬間,返回 true。
2、獲取鼠標輸入(返回值:bool)

  • 0左鍵,1右鍵,2中鍵
    (1)GetMouseButton:檢測是否按鼠標,持續檢測。
    (2)GetMouseButtonDown:檢測是否按下鼠標,只檢測一次。
    (3)GetMouseButtonUp:檢測是否擡起了鼠標。
    3、獲取按鈕輸入(返回值:bool)
  • Edit–Project Setting–Input輸入管理器中查看按鈕的設置
    (1)GetButton:檢測是否按了按鈕,持續檢測。
    (2)GetButtonDown:檢測是否按下按鈕,只檢測一次。
    (3)GetButtonUp:檢測是否擡起了按鈕,只檢測一次。
    4、獲取虛擬軸的值(返回值:float)
    (1)Input.GetAxis(“Horizontal”):返回-1到1之間的浮點數,有漸變效果。
    (2)Input.GetAxisRaw(“Vertical”):沒有漸變效果,只能返回-1,0,1三個值。
  • 控制物體前後左右移動
	float h = Input.GetAxis("Horizontal");
	float v = Input.GetAxis("Vertical");
	transform.Translate(Vector3.right*h*Time.deltaTime);
	transform.Translate(Vector3.forward*v*Time.deltaTime);

5、其他
(1)anyKey:當前是否有任何鍵或鼠標按鈕被按住。
(2)anyKeyDown:當用戶點擊任何鍵或鼠標按鈕的第一幀時,返回true。
(3)mousePosition:當前鼠標位置的像素座標。(Z軸恆爲0)

八、Vector2(結構體)

1、靜態變量(直接通過類名調用)
(1)down:print(Vector2.dowm); (0,-1)
(2)up:print(Vector2.up); (0,1)
(3)left:print(Vector2.left); (-1,0)
(4)right:print(Vector2.right);(1,0)
(5)one:print(Vector2.one); (1,1)
(6)zero:print(Vector2.zero); (0,0)
2、變量
(1)magnitude:返回向量的長度。
(2)normalized:返回向量單位化後的向量,並且對原向量不產生影響。
(3)sqrMagnitude:返回這個向量長度的平方。
3、構造函數
Vector2:用給定的x, y分量構造一個新的向量。
4、公有函數(方法)
(1)Equals:如果給定的向量恰好等於這個向量,則返回true。
(2)Normalize:對向量a進行單位化,對向量a會產生影響。
5、靜態函數(方法)
(1)Distance:輸出兩個向量之間的距離。
(2)Angle:輸出兩個向量之間的角度。
(3)ClampMagnitude:返回向量的副本,其大小被限制爲maxLength。
(4)Lerp:用t對向量a和b進行線性插值。
(5)LerpUnclamped:用t對向量a和b進行線性插值。大於Lerp
(6)Max:返回長度值大的。
(7)Min:返回長度值小的。
(8)Scale:按組件方式將兩個向量相乘。
(9)MoveTowards:向目標移動一個點電流。(從當前移動到指定目標)

九、Vector3(結構體)

1、靜態變量(直接通過類名調用)
(1)down:print(Vector3.dowm); (0,-1,0)
(2)up:print(Vector3.up); (0,1,0)
(3)left:print(Vector3.left); (-1,0,0)
(4)right:print(Vector3.right); (1,0,0)
(5)one:print(Vector3.one); (1,1,1)
(6)zero:print(Vector3.zero); (0,0,0)
(7)back:print(Vector3.back); (0,0,-1)
(8)forward:print(Vector3.forward);(0,0,1)
2、靜態函數(方法)
(1)Cross:兩個向量的外積。
(2)OrthoNormalize:使向量歸一化並互相正交。
(3)ClampMagnitude:返回向量的副本,其大小被限制爲maxLength。
(4)Lerp:用t對向量a和b進行線性插值。
(5)LerpUnclamped:用t對向量a和b進行線性插值。大於Lerp
(6)Max:返回長度值大的。
(7)Min:返回長度值小的。
(8)Scale:按組件方式將兩個向量相乘。
(9)MoveTowards:向目標移動一個點電流。(從當前移動到指定目標)
(10)Project:將一個向量投影到另一個向量上。
(11)Reflect:將一個向量反射出法向量定義的平面。
(12)Slerp:在兩個向量之間進行球面插值。
3、向量運算 + - * / ==

十、Random生成隨機數

1、Range:生成隨機數,不包括最大值
2、InitState:用種子初始化隨機數生成器狀態。

測試代碼:

public class API13Random : MonoBehaviour {
    public Transform cube;
	void Start () {
        //Random.InitState( (int)System.DateTime.Now.Ticks );
	}
	void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            print(Random.Range(4, 100));
        }
        //cube.position = Random.insideUnitCircle * 5;
        cube.position = Random.insideUnitSphere * 5;
	}
}

3、ColorHSV:從HSV和alpha範圍生成一個隨機顏色。
4、value:返回一個介於0.0(包括0.0在內)和1.0(包括1.0在內)之間的隨機數(只讀)。
5、state:獲取/設置隨機數生成器的完整內部狀態。
6、rotation:返回一個隨機旋轉(只讀)。
7、insideUnitSphere:返回半徑爲1的球體內的隨機點(只讀)。
8、insideUnitCircle:返回半徑爲1的圓內的隨機點(只讀)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章