1,下載、安裝: http://unity3d.com/cn/get-unity/download/archive
建議直接借助 UnityDownloadAssistant 進行安裝,根據需要勾選需要的資源包,下載完成后有以下資源:
2,學習視頻:51自學網 → Unity3D游戲制作入門教程
學習建議: 參考教程中的思路、實現方法,但不一定完全要按照教程中的每一步去做,覺得不好的地方,自己可以變通一下
3,發射炮彈實例注意事項:
(1) 教學中編輯器是4.X版本的,官網下載的最新版本是5.X版本,部分Javascript的代碼語法不同
如:5.X 版本中 獲取組件的代碼是: n.GetComponent(Rigidbody).AddForce(fwd*3800);
5.X 版本中 可用 UI - Text 代替 之前版本的 GUIText :
gameObject.Find("Canvas/Text").GetComponent(Text).text ="射擊次數:"+shootNums;
(2) 地面建議用 3D Object → Plane 對象,然后加大 x,z ,y 設置為1
(3) 顯示發射次數和顯示次數的文本
(4) 發射的子彈暫時不Destroy
4,以下是1-21課完整的Javascript代碼:
附加在Main Camera上的JS:

import UnityEngine.UI; #pragma strict var speed:int=5; var Newobject:Transform; //發射次數 var shootNums:int=1000; //保存消滅數量 var killNums:int=0; function Start () { gameObject.Find("Canvas/Text").GetComponent(Text).text ="射擊次數:"+shootNums + " 消滅數量:"+killNums; //加載音樂 gameObject.Find("Plane").GetComponent(AudioSource).Play(); gameObject.Find("bullt").GetComponent(AudioSource).Pause(); } function Update () { //鏡頭(視角)前后左右移動 : W S A D var x:float=Input.GetAxis("Horizontal")*Time.deltaTime*speed; var z:float=Input.GetAxis("Vertical")*Time.deltaTime*speed; transform.Translate(x,0,z); //點擊 Ctrl 或 點擊鼠標左鍵 發射 if (Input.GetButtonDown("Fire1")) { //創建發射球體 var n:Transform = Instantiate(Newobject,transform.position,transform.rotation); //定義發射方向 var fwd:Vector3=transform.TransformDirection(Vector3.forward); //發射力度 n.GetComponent(Rigidbody).AddForce(fwd*3800); gameObject.Find("bullt").GetComponent(AudioSource).Play(); //記錄發射次數 shootNums+=1; //更新發射次數 gameObject.Find("Canvas/Text").GetComponent(Text).text ="射擊次數:"+shootNums+ " 消滅數量:"+killNums; } //旋轉功能 //視角向右轉 E if(Input.GetKey(KeyCode.Q)){ transform.Rotate(0,-25*Time.deltaTime,0,Space.Self); } //視角向左轉 Q if(Input.GetKey(KeyCode.E)){ transform.Rotate(0,25*Time.deltaTime,0,Space.Self); } //仰視 Z if(Input.GetKey(KeyCode.Z)){ transform.Rotate(-25*Time.deltaTime,0,0,Space.Self); } //俯視 C if(Input.GetKey(KeyCode.C)){ transform.Rotate(25*Time.deltaTime,0,0,Space.Self); } //鏡頭水平向上、水平向下移動 if(Input.GetKey(KeyCode.H)){ transform.Translate(0,5*Time.deltaTime,0); } if(Input.GetKey(KeyCode.N)){ transform.Translate(0,-5*Time.deltaTime,0); } }
附加在消滅立方體物體上的JS:

#pragma strict function Start () { } //消滅數量 var countkillNums:int=0; function Update () { if (gameObject.transform.position.y<0) { countkillNums=++gameObject.Find("Main Camera").GetComponent(ShootBullt).killNums; if (countkillNums>=21) { gameObject.Find("Canvas/Text").GetComponent(Text).text = "恭喜:闖關成功!" ; gameObject.Find("Main Camera").GetComponent(ShootBullt).enabled=false; } Destroy(gameObject); } }
實現效果: