歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android Unity3D游戲開發之躲避方塊(附源碼)

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

日期:2017/3/1 11:10:50   编辑:Linux編程

開發環境

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

這裡可以看到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