Unity學習筆記(二)——第一個Unity項目Hello Unity


保留版權,轉載請注明出處: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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM