基于Unity的射擊類游開發(fā)課件_第1頁
基于Unity的射擊類游開發(fā)課件_第2頁
基于Unity的射擊類游開發(fā)課件_第3頁
基于Unity的射擊類游開發(fā)課件_第4頁
基于Unity的射擊類游開發(fā)課件_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、基于Unity的射擊類游戲開發(fā) 研究的背景與意義 無論是3D化的谷歌地圖,還是現(xiàn)在膾炙人口3D游戲,甚至是集娛樂和運動于一體的室內(nèi)體感游戲,這一切都是虛擬現(xiàn)實技術(shù)的應用。如今的社會,不僅僅是游戲,3D技術(shù)已經(jīng)被廣泛的開發(fā)并且用作商業(yè)應用,比如模擬車展,火箭升空,3D旅行等。 Unity3D其開發(fā)的綜合性平臺和其豐富的腳本語言,開發(fā)界面友好,功能強大等有利因素,被我選擇作為制作一款射擊類游戲的開發(fā)工具。通過對3D游戲的設(shè)計,來充分了解虛擬現(xiàn)實在社會中的應用以及如何將該技術(shù)廣泛的應用在各大領(lǐng)域。 Unity3D軟件介紹Unity3D(以下簡稱U3D)是一款3D跨平臺次世代游戲引擎。1)提供了非常完

2、美的跨平臺系統(tǒng)。平臺之間的差別常常會影響到產(chǎn)品的開發(fā)速度和進度,因此大部分開發(fā)者們要在這上面花費大量的時間,而unity則能在近10種主流平臺之間完美移植。2)提供了多種腳本語言編譯的常用環(huán)境,并且可以根據(jù)需求將默認的編譯環(huán)境做出調(diào)整。Unity3D支持C#、Javascript、Boo三種腳本語言。3)提供了一個交互良好的操作界面,能夠完美的在windows和Mac OS下部署。該軟件自帶的五個工程視圖框架能夠讓你很好的觀察你制作游戲的進程。8/20/2022 系統(tǒng)的功能需求分析 1. 游戲需要一個開始界面用來開始游戲、了解游戲的玩法、以及退出游戲,初始界面至少要有這三個選項。 2. 場景的

3、設(shè)計以及各種觸發(fā)事件,并且在此基礎(chǔ)上有所創(chuàng)新。 3. 在游戲的GUI上面有主角的血條,裝填炮彈,還有一些創(chuàng)新性的技能設(shè)計,讓游戲更加豐富多彩。 4. 游戲中還應該存在敵人,敵人會主動瞄準主角并攻擊。 系統(tǒng)的整體設(shè)計系統(tǒng)的開始界面設(shè)計 系統(tǒng)包括場景1和場景2。場景1中所要設(shè)計的就是游戲的開始界面。 界面中包含了3個按鈕,分別完成各項功能。按鈕1)開始游戲:用來進入場景2,即進入游戲。用戶只要通過鼠標按下該按鈕,就可以載入所要進行的游戲。按鈕2)游戲幫助:用來進入幫助界面。幫助界面主要用來告知玩家如何進行游戲等等注意事項。為一些剛解除該游戲的玩家提供幫助。 按鈕3)退出游戲:主要用來退出游戲。系統(tǒng)

4、的場景設(shè)計 系統(tǒng)中的場景2就是我們所要進行游戲的場景。場景中包含的對象有:1)地形:對象都放在這上面。還包括一些植物和水池。2)主角對象:這里的主角對象是一輛坦克,包括了坦克的移動、開火、還有與其相關(guān)聯(lián)的GUI。3)敵方對象:這里的對象包括的敵方的坦克,炮臺等,他們都有自己的AI。 4)特殊道具:有些特殊道具可以被摧毀。有些特殊道具可以被拾取并觸發(fā)有意思的事件。 游戲系統(tǒng)的實現(xiàn)游戲開始界面制作 首先我們使用GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), textureBG)方法來給整個屏幕附上textureBG貼圖,re

5、ct方法是用來創(chuàng)建一個矩形框,它的參數(shù)表示Rect(距離左邊屏幕的距離,距離上邊屏幕的距離,舉行的寬,矩形的高),這是制作界面背景的一種方法。 我們在游戲的腳本代碼中給攝像機賦予了4種狀態(tài)機,分別是當前畫面狀態(tài),開始后的狀態(tài),按下幫助后的狀態(tài),按下退出后的狀態(tài),分別給這些狀態(tài)寫了方法,即mainmenu(),helpmenu(),quitmenu()。效果如圖:場景的制作 Unity中自帶的平面系統(tǒng)能很好的為我們創(chuàng)建我們想到要的地形場景。在工具欄中選擇Terrain-Create Terrain便可以創(chuàng)建一個平面。 在Terrain中的SET.選項中可以修改平面的大小,我們在最右側(cè)視圖中可以發(fā)

6、現(xiàn)該平面的屬性,在Terrain(sprict)下的幾個按鈕可以用來修飾平面,前三個按鈕可以將平臺的地勢加高,加平緩,第四個按鈕是用來給平面附上地形貼圖,第五個按鈕是用來創(chuàng)造樹,第六個按鈕是用來創(chuàng)造花草植物,按下Edit Details便可以為這些物體選擇所需的貼圖。 為了讓整個場景更加唯美,U3D中自帶了天空盒系統(tǒng)(SKYBOX),在工具欄中選擇Edit-Render Steting菜單,打開渲染設(shè)置的界面,在Skybox Material選項中設(shè)置天空盒的材質(zhì),即將天空盒包中的天空盒材質(zhì)拖入其中便可。這樣美輪美奐的場景就基本設(shè)置完成了。 游戲?qū)ο蟮闹谱?1)主角對象的移動,旋轉(zhuǎn) 場景中調(diào)整

7、好坦克的大小之后,就必須要給坦克主角添加行動腳本了?,F(xiàn)實中的 坦克只能往前移動,并不能左右平移,但可以原地旋轉(zhuǎn)身體。U3D中使用方法transform.Translate()來移動身體,此方法的唯一參數(shù)為平移模型的方向。使用方法transform.Rotate()來旋轉(zhuǎn)身體,此方法的參數(shù)為旋轉(zhuǎn)的速度和旋轉(zhuǎn)方向。 之后我們來設(shè)計坦克的炮頭旋轉(zhuǎn)方式,方法任然為Rotate()方法2)炮彈的設(shè)計與開火實現(xiàn) 在工具欄中選擇Create Object-Create Other-sphere來創(chuàng)建一個球型物體,調(diào)整大小,并在網(wǎng)上找一些金屬高亮的材質(zhì)賦予給球體。在project視圖中我們創(chuàng)建一個prefab

8、預制對象,將場景中的炮彈球體拖入該預制對象中改名為bullet,然后刪除場景中的炮彈對象。這樣我們所要的炮彈就有了,之后便是發(fā)射炮彈的實現(xiàn)。 創(chuàng)建一個空的對象,在工具欄上選擇Create Object-Create Empty,將該空對象拖到炮口附近,將其改名為firepoint,并將它拖入到炮頭中,使其成為炮頭的子對象。 在發(fā)射炮彈的腳本代碼中,我們使用了Instantiate()方法,該方法用來實例化一個克隆對象,參數(shù)為(實例化的對象,產(chǎn)生的位置,產(chǎn)生的方向), transform.TransformDirection()方法用來給創(chuàng)建的克隆實例給一個方向力,參數(shù)為力的方向。使用了GetM

9、ouseButton(0)方法來完成左鍵鼠標就可以實例化一個炮彈,并且按照方向發(fā)射出去。定義了一個canshot整形用來判定炮彈是否能發(fā)射。在游戲中運行時,我們發(fā)現(xiàn)炮彈能夠發(fā)射并且會被撞到的物體彈開,下面就是要設(shè)計炮彈的爆炸與火花。與炮彈的設(shè)計相同,在火花效果的包中找到一個fireworks效果,調(diào)整效果至爆炸的樣子,然后將它放入一個預制對象之中名字改為火花。我們添加如下代碼使得炮彈碰撞到地方就消失并且產(chǎn)生一個火花,火花的產(chǎn)生與消失。 void OnCollisionStay(Collision collision) Instantiate(boom, this.transform.posit

10、ion, this.transform.rotation); Destroy(gameObject); 將這段代碼拖給炮彈,目的是讓炮彈碰撞到物體就消失,并且在消失的地方實例化一個火花。這里使用了OnCollisionStay(Collsion collision)方法,這是U3D中的一種碰撞檢測。3)敵人對象的設(shè)計 與主角對象一樣,從網(wǎng)上找來一個坦克和火炮的模型,調(diào)整大小,為了降低游戲的難度,這里的敵人對象是無法移動的,但是他們會主動尋找主角并打擊主角,這里就是有關(guān)對人AI的設(shè)定了。 我們?nèi)稳幌窠o與主角發(fā)射炮彈的能力來給敵人的炮頭附上發(fā)射炮彈的功能,代碼和主角代碼如出一轍。設(shè)計敵人的關(guān)鍵之處就在于敵人的AI設(shè)定。if (Vector3.Distance(this.transform.position, hero.trans

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論