保留版權,轉載請注明出處:http://blog.csdn.net/panjunbiao/article/details/9318811
在這一篇文章里,參照宣雨松的《Unity 3D游戲開發》第38頁的例子,用C#寫出我的第一個Unity項目 Hello Unity。
第一步,新建項目:
點擊“Create Project”創建項目之后,我們看到項目中只有一個攝像機對象“Main Camera”。
並且Unity為我們創建了一個未命名(untitled)的場景,點擊“File -> Save Scene”可以設定場景的名字並保存。
點擊保存場景菜單之后,可以在保存場景窗口中輸入場景的名字,以及保存的文件夾位置:
保存之后,我們看看Assets文件夾:
可以看到剛剛保存的場景文件“Hello Scene.unity”。
現在我們來向這個場景添加一個平面(Plane)、一個立方體(Cube)和一個球體(Sphere):
放入平面之后,為了方便起見,我們將平面的中心位置調整到(0,0,0),調整的方法是在場景中選中平面,然后在右邊Inspector視圖中將Position的X、Y、Z設置為0即可,如下:
同樣的方法插入立方體和球體,並把他們手工調整到你喜歡的位置(例如在平面上方)
這些物體創建之后是沒有顏色的,如下面:
為此我們需要給它們添加材質,例如平面添加一個綠色材質,立方體添加一個紅色材質,球體添加一個藍色材質。
點擊“Assets --> Create --> Material”菜單創建材質:
在Assets材質視圖中,將新創建的材質命名為Red:
在Inspector視圖中,將Red材質修改為紅色:
然后將Assets視圖中的紅色材質小球拖到場景視圖中的立方體上面,此時立方體變成紅色,Inspector視圖中也會包含材質的信息:
同樣的方法,創建藍色、綠色材質,並把平面變成綠色,球體變成藍色:
這個時候物體雖然有了顏色,但看起來還是很暗的,需要設置光源,例如我們在平面上方放置一個點光源,點擊菜單“GameObject --> Create Other --> Point Light”:
這樣場景就被照亮啦,通過Game視圖或者點擊運行按鈕,就可以看到游戲中的場景了,如果看不到,可能是攝像機的位置和角度的問題,調整好就OK。
現在,我們想做一些最簡單的控制,例如控制立方體旋轉和移動,並且在屏幕上顯示按鈕和文字,如何做到呢?
先來創建一個腳本,方法是點擊菜單“Assets --> Create --> C# Script”,在Assets視圖中會出現一個腳本資源,將它命名為“HelloScript”:
雙擊腳本圖標,打開MonoDevelop編輯器,寫入下面的代碼:
using UnityEngine; using System.Collections; public class HelloScript : MonoBehaviour { //對象的移動速度 //translate speed of the object int translateSpeed = 10; //對象的旋轉速度 //rotation speed of the opbject int rotateSpeed = 500; // Use this for initialization void Start () { } // Update is called once per frame void Update () { //如果監測到W鍵按下,則對象向上移動 if (Input.GetKey(KeyCode.W)) { transform.Translate (Vector3.up * Time.deltaTime * translateSpeed); } //如果監測到S鍵按下,則對象向下移動 if (Input.GetKey(KeyCode.S)) { transform.Translate (Vector3.down * Time.deltaTime * translateSpeed); } //如果監測到A鍵按下,則對象向左移動 if (Input.GetKey(KeyCode.A)) { transform.Translate (Vector3.left * Time.deltaTime * translateSpeed); } //如果監測到D鍵按下,則對象向右移動 if (Input.GetKey(KeyCode.D)) { transform.Translate (Vector3.right * Time.deltaTime * translateSpeed); } //如果監測到Q鍵按下,則對象向左旋轉 if (Input.GetKey(KeyCode.Q)) { transform.Rotate(Vector3.up * Time.deltaTime * (rotateSpeed)); } //如果監測到E鍵按下,則對象向右旋轉 if (Input.GetKey(KeyCode.E)) { transform.Rotate(Vector3.up * Time.deltaTime * (-rotateSpeed)); } } void OnGUI() { //顯示“向左旋轉”按鈕並設置事件響應腳本 //Display Turn Left button and set event if (GUI.Button(new Rect(10, 10, 70, 30), "Turn Left")) { transform.Rotate(Vector3.up * Time.deltaTime * (rotateSpeed)); } //顯示“向右旋轉”按鈕並設置事件響應腳本 //Display Turn Right button and set event if (GUI.Button(new Rect(170, 10, 70, 30), "Turn Right")) { transform.Rotate(Vector3.up * Time.deltaTime * (-rotateSpeed)); } //顯示對象的位置和角度 //Display position of the object. GUI.Label(new Rect(250, 10, 200, 30), "Location: " + transform.position); GUI.Label(new Rect(250, 50, 200, 30), "Rotation: " + transform.rotation); } }
例如我們想用該腳本控制立方體,只需要將腳本資源從Assets視圖拖到場景Scene視圖中的立方體對象即可。
現在,我們就可以運行第一個“游戲”啦:
參考資料:宣雨松《Unity 3D游戲開發》第38頁。
相關原代碼已放到CSDN CODE,請點擊打開:CODE