歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android Unity3D游戲開發之躲避方塊(附源碼)

開發環境

Window 7

Unity3D 3.4

MB525 defy  Android 2.1-update1

這次給大家送上自己初學Unity時寫的一個小游戲Demo,我叫它“躲避方塊”,其實這個游戲可以無限擴展,可以做成聯機游戲,加入更多游戲元素等,我是心有余而力不足,公司想做個類似《火炬之光》的游戲,自己要好好努力才行,這也許是自己開發的第一個完全作品。就在上個星期,Unity升級到了3.4,功能有了質的飛躍,不僅游戲大小縮小一圈(我這游戲看不出來- -),開發也更加開放,移動端能用的功能更多,新的3.4Demo就是我的目標,手機游戲就是要這樣的畫面效果-0- 話說最近打了一款叫《愛麗絲瘋狂回歸》的游戲,EA再次讓我感覺到了無所不能,游戲做得十分精致,雖然血型十足,但絢麗的畫面下形成強烈的對比,就是游戲性可能略顯單薄,但是款難得一見的佳作,推薦給大家,每個人心中都有個仙境,至少我們的仙境曾經美麗過~ ~

本文工程代碼下載地址: 

下載在Linux公社的1號FTP服務器裡,下載地址:

FTP地址:ftp://www.linuxidc.com

用戶名:www.linuxidc.com

密碼:www.muu.cc

在 2011年LinuxIDC.com\10月\Android Unity3D游戲開發之躲避方塊附源碼

下載方法見 http://www.linuxidc.net/thread-1187-1-1.html

本次學習:

1.開發准備

2.制作簡介

3.小技巧

1.開發准備

       這個游戲代碼其實很簡單,羽化也沒想到要寫成個游戲,在看Unity腳本文檔的時候練習那些腳本,慢慢的就寫成了這個小游戲,大家若有什麼不懂的腳本可以看看腳本文檔,上面寫得很詳細,還有就是升級成Unity3.4以後.NET一定要到3.5,要不讓腳步編輯器Monodevelop打不開。還有就是游戲是兩個Scene組成,在自己做的時候一定要在Buid Settings裡面排序,詳細可以看我的游戲代碼。Unity的強大之處在於對游戲的優化,Occlusion Culling技術使我們場景可以很更大,減少了游戲的大小,大家可以研究下這些開發技巧~ ~ 

 

2.制作簡介

還是和原來一樣,主要是介紹一下重要的幾個腳本,每個人開發習慣不一樣,所以這裡就不詳細寫到底怎麼做的了,代碼全部送上,寫幾個對開發重要的腳本,希望對大家有幫助。

首先是觸摸腳本怎麼寫,因為觸摸是目前手機唯一的操作方式,這個很重要,就那自己寫的幾個腳本介紹下,看看這個腳本Menu_New,這是一個實現新的游戲的腳本詳細代碼如下:

  1. function Update()  
  2. {  
  3.     for (var touch : Touch in Input.touches)  
  4.     {  
  5.       
  6.         if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved || Input.GetTouch(0).phase == TouchPhase.Began)  
  7.         {  
  8.             if(touch.position.x>90 && touch.position.x<540 && touch.position.y>250 && touch.position.y<400)  
  9.             {  
  10.                 renderer.material.color = Color.red;  
  11.             }  
  12.             else  
  13.             {  
  14.                 renderer.material.color = Color.white;  
  15.             }  
  16.         }  
  17.         else if (touch.phase == TouchPhase.Ended )  
  18.         {  
  19.             if(touch.position.x>90 && touch.position.x<540 && touch.position.y>250 && touch.position.y<400)  
  20.             {  
  21.                 renderer.material.color = Color.red;  
  22.                 Application.LoadLevel(1);  
  23.             }  
  24.         }  
  25.         else  
  26.         {  
  27.             if(touch.position.x>90 && touch.position.x<540 && touch.position.y>250 && touch.position.y<400)  
  28.             {  
  29.                 renderer.material.color = Color.red;  
  30.             }  
  31.             else  
  32.             {  
  33.                 renderer.material.color = Color.white;  
  34.             }  
  35.         }  
  36.     }  
  37. }  

這裡可以看到Input是獲取觸摸的接口,從Input中可以獲取觸摸個數,觸摸狀態,包括很多感應器,甚至還能確定第幾個點的觸摸,羽化自我認為這個很方便,原來開發Android游戲的時候,做個多點觸摸判斷都很麻煩,Unity使這一下子簡單不少,詳細使用方法可以看腳本手冊裡面介紹,還有就是Scene的跳轉用Application,退出也是一樣,Application也是很使用的接口。 大家看到羽化把坐標寫死其實是不對的,應該寫成相對坐標,這裡不要忘了,羽化也是為了方便-0-

下一個我們看看觸發器的腳本,很多人都搞不清楚觸發器和碰撞器到底有什麼區別,羽化可以這麼解釋,觸發器是個虛的東西,被勾成觸發器的物體實質上就相當於沒了實體,而碰撞器肯定是實的東西,用腳本裡面的理解來說,無論是觸發器還是碰撞器,都是由剛體引起的,所以必須兩個物體中必須有一個是剛體。看看這個腳本Trigger:

  1. collider.isTrigger = true;  
  2. var explosionPrefab : Transform;  
  3. // Destroy everything that enters the trigger   
  4. function OnTriggerEnter (other : Collider) {  
  5.  if(other.gameObject.tag == "Player")  
  6.  {  
  7.   Destroy(other.gameObject);  
  8.   Destroy(gameObject);  
  9.   Instantiate(explosionPrefab, transform.position,Quaternion.identity);  
  10.   Begin.hasOne = true;  
  11.   Begin.life --;  
  12.   GameObject.Find("Life") .guiText.text = Begin.life + "";  
  13.  }  
  14. }  

這個腳本是讓火球或者雷球相互觸發的時候不會自己爆炸,因為速度是越來越快,所以總會有碰到的時候。

Copyright © Linux教程網 All Rights Reserved