天天看點

Unity3D第一個項目【控制模型移動】

一、建立Unity項目

       打開Unity遊戲編輯器界面,在導航菜單欄中選擇File --->  New Project菜單項,在彈出界面中選擇Create new Project頁面,将項目名命名為MobilityModel,然後再點選Create Project,完成項目的建立。

       然後點選儲存(Ctrl+S)儲存場景。

二、構模組化型

       在Hierarchy視圖中分别建立遊戲對象Plane(面闆)、Cube(立方體)、Sphere(球體)、Cylinder(圓柱體)、Capsule(膠囊體),然後滑鼠拖動建立的遊戲對象将他們擺放在合适的位置。

       接下來在遊戲中添加一個光源,在Hierarchy視圖中選擇Create--->Directional light菜單項,光源是遊戲中非常重要的一個屬性,一定要在遊戲場景中設定它,如果不設定光源對象,Game視圖會非常暗,嚴重影響遊戲的效果。

三、添加腳本

       在Project視圖中點選Create--->JavaScript菜單項建立一個遊戲腳本,将其命名為MobilityModelScript.js,在腳本上編寫如下代碼:

Mobilitymodelscript.js代碼  

Unity3D第一個項目【控制模型移動】
  1. //模型移動速度  
  2. var TranslateSpeed = 10;  
  3. //模型旋轉速度  
  4. var RotateSpeed = 1000;  
  5. //繪制UI界面  
  6. function OnGUI(){  
  7.     //設定GUI背景色  
  8.     GUI.backgroundColor = Color.red;  
  9.     if(GUI.Button(Rect(10,10,70,30),"向左旋轉")){  
  10.         //向左旋轉  
  11.         transform.Rotate(Vector3.up * Time.deltaTime * (-RotateSpeed));  
  12.     }  
  13.     if(GUI.Button(Rect(90,10,70,30),"向前移動")){  
  14.         //向前移動  
  15.         transform.Translate(Vector3.forward * Time.deltaTime * TranslateSpeed);  
  16.     }  
  17.     if(GUI.Button(Rect(170,10,70,30),"向右旋轉")){  
  18.         //向右旋轉  
  19.         transform.Rotate(Vector3.up * Time.deltaTime * RotateSpeed);  
  20.     }  
  21.     if(GUI.Button(Rect(90,50,70,30),"向後移動")){  
  22.         //向後移動  
  23.         transform.Translate(Vector3.forward * Time.deltaTime * (-TranslateSpeed));  
  24.     }  
  25.     if(GUI.Button(Rect(10,50,70,30),"向左移動")){  
  26.         //向左移動  
  27.         transform.Translate(Vector3.right * Time.deltaTime * (-TranslateSpeed));  
  28.     }  
  29.     if(GUI.Button(Rect(10,50,70,30),"向右移動")){  
  30.         //向右移動  
  31.         transform.Translate(Vector3.right * Time.deltaTime * TranslateSpeed);  
  32.     }  
  33.     //顯示模型位置資訊  
  34.     GUI.Label(Rect(250,10,200,30),"模型位置"+transform.position);  
  35.     //顯示模型旋轉資訊  
  36.     GUI.Label(Rect(250,50,200,30),"模型旋轉"+transform.rotation);  
  37. }  

      上述代碼中重要方法和屬性如下:

      OnGUI()方法用來繪制GUI界面元件。

      GUI.Button():設定一個按鈕,傳回true時表示該按鈕被按下。

      GUI.Label():設定一個文本框。

      transform:為目前綁定模型的變換對象。

      transform.Rotate():設定模型旋轉。

      transform.Translate():設定模型平移。

      Time.deltaTime:該數值為一個隻讀屬性,不可修改,表示完成最後一幀的事件,機關為秒。

      Vector3:标志一個模型移動或者旋轉的方法。

      Rect:規定一個矩形區域,用于顯示控件。

      将編寫好的腳本對象,将其從Project視圖拖拽到Hierarchy視圖中的立方體(Cube)對象上,如果沒有提示錯誤,表示腳本綁定成功,運作遊戲後該遊戲對象将執行該腳本中的内容。

       目前立方體對象與其他模型對象之間是不存在碰撞的,但是運作遊戲後,可以控制立方體(Cube)直接穿越另一個模型對象。為了讓模型對象之間具有實體的碰撞,需要給模型對象添加一個剛體(Rigidbody)屬性,添加方式:首先在Hierarchy視圖中選中立方體對象,在Uinty導航菜單欄中選擇Component --> Physics 

-->Rigidbody菜單項即可。

四、測試運作

       點選運作按鈕就能看到結果,可以點選顯示的六個按鈕對象,可以移動Cube(立方體)的位置和旋轉。

Unity3D第一個項目【控制模型移動】

繼續閱讀