1. 程式人生 > 其它 >Unity3D學習筆記第一課

Unity3D學習筆記第一課

第一課程: 1.Unity類名必須與檔名保持一致

2.講屬性設定為public可以在Unity中訪問

  public float speed;
	// Use this for initialization
	void Start () {
 
	}
 
	// Update is called once per frame
	void Update () {
		//獲取左右方向鍵的的值(範圍為-1到1)
		float amtToMove = Input.GetAxis ("Horizontal") * speed;
		//使用矩陣進行平移
		gameObject.transform.Translate (Vector3.right * amtToMove);
	}

3.攝像機:遊戲的輸出畫面是由攝像機所觀測的場景而實現的,將遊戲場景呈現到2D的計算機螢幕,有 兩種投影方式為透視投影和正交投影,Unity預設為透視投影,透視投影感覺有距離感,正交投影沒有距離感。 開發Unity2D遊戲,需要將投影方式改為正交投影。

透視投影的三個主要引數: FieldofView(視角), NearClipPlane(近看平面), FarClipPlane(遠看平面)

4.GameObject物件包含transform,camera屬性,GetComponet和AddComponent等方法

5.Transform實現物件的位置、旋轉以及縮放 position rotation localScale Translate方法 Rotate方法

6.Input.GetAxis()與Input.GetAxisRaw()檢測方向鍵 檢測上下移動 Input.GetAxis("Vertical") 檢測左右移動 Input.GetAxis("Horizontal")

7.Time類 deltaTime 上一幀到本幀的時間,單位為秒

8.三個Update的呼叫順序 MonoBehaviour.FixedUpdate() MonoBehaviour.Update() MonoBehaviour.LateUpdate()

9.迴圈移動方塊

	public class Player : MonoBehaviour {
	public float playerSpeed;
	// Use this for initialization
	void Start () {
 
	}
 
	// Update is called once per frame
	void Update () {
		Debug.Log ("Update");
		var moveto = Input.GetAxis ("Horizontal") *Time.deltaTime* playerSpeed;
		gameObject.transform.Translate (Vector3.right * moveto);
		if (transform.position.x > 9.15) {
			transform.position=new Vector3(-9.15f,transform.position.y);
		}
		if (transform.position.x <- 9.15) {
			transform.position=new Vector3(9.15f,transform.position.y);
		}
	}
	void LateUpdate(){
		Debug.Log ("LateUpdate");
	}
	void FixedUpdate(){
		Debug.Log("FixedUpdate");
	}
}

9.建立按鈕並響應按鈕操作

void OnGUI(){
		if (GUI.Button (new Rect (0, 0, 100, 50), "Play")) {
		} 
		else if (GUI.Button (new Rect (0, 60, 100, 50), "Pause")) {
 
		} 
		else if (GUI.Button (new Rect (0, 120, 100, 50), "Stop")) {
		}
	}