Unity3D學習筆記第一課
阿新 • • 發佈:2022-05-03
第一課程: 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")) {
}
}