999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Unity3D開發Survival shooter的實現

2018-01-15 09:52:06王濤王曉博
智富時代 2018年11期

王濤 王曉博

【摘 要】本文闡述了一個基于Unity3D開發的射擊類游戲,重點實現了碰撞檢測、敵人智能跟蹤、動畫設置、聲音播放等功能,UI搭建方面實現了界面的制作、玩家血量條、玩家分數記錄和音量界面的制作。

【關鍵詞】Unity3D軟件;射擊類游戲;UI界面

1.引言

小游戲作為電子游戲家族中的一個獨特成員,在其中扮演著重要的角色。通常以休閑益智類為主,主要分為單機版和網絡版。本次開發的噩夢射手就是屬于休閑小游戲,正是迎合了當前游戲產業,具備良好的發展前景。

2.游戲系統設計

2.1 場景搭建

游戲素材來自于Unity引擎中自帶的資源商店,在搜索界面輸入Survival shooter就可以搜索到本題的素材,通過下載導入就可將游戲素材導入到Unity資源文件中。根據原場景進行場景搭建,搭建場景的所有游戲對象都會在Hierarchy視圖中顯示出來,方便開發者對場景隨時進行更改與調整。

2.2 場景中的物理檢測設置

游戲中能夠發生碰撞的物理引擎是Collider組件,受到重力、摩擦力和角摩擦力的是Rigidbody組件,當給游戲中的對象加上這些組件的時候,他們就會模擬出現實世界中的一些物理現象。

在物理引擎中,兩個物體發生碰撞的條件是:兩個物體都具有碰撞器,并且一個物體必須帶剛體,而且兩個物體發生相對運動,這是在Unity的物理引擎中產生物理碰撞的必要條件。

2.3 UI界面的制作

在本題中游戲界面中顯示的有玩家的血量和得到的分數記錄,當按下ESC鍵會彈出聲音控制面板和結束暫停重新開始界面。

3.游戲功能實現

3.1 主角的移動

通過獲取虛擬軸來實現主角的移動,水平虛擬軸和垂直虛擬軸,水平虛擬軸對應了鍵盤上的A、D,垂直虛擬軸對應了鍵盤的W、S。獲取到他們,將它們賦值給主角的位置,這樣就可以在按下W、A、S、D讓主角移動了,其本質就是改變了主角在三維世界中的位置來達到移動的目的。

3.2 主角的轉向

主角的轉向是通過鼠標來控制的,由于鼠標是在屏幕上的,因此首先要將鼠標的位置轉換到世界坐標中,在本題中通過射線檢測的方法與四元數的轉向的方法來讓主角轉向并且很自然的轉向。

3.3 主角的動畫播放

通過直接拖拽的方式將主角的動畫添加到這個面板中,在游戲剛開始時,不移動主角時,我們就會讓主角執行一個閑置的狀態,當按下W、A、S、D中的任何一個時,主角就會播放移動的動畫,此時在主角的這個游戲對象的屬性面板上加上一個Animator組件,然后將我們創建的這個動畫狀態機添加給Animator組件,這樣就這兩個組件連接在一起了,最后在主角的這個腳本中將這個組件拿到,加上一些判定,在適當的時候來播放這個動畫就可以了。

3.4 主角的射擊

主角的射擊是通過鼠標來控制的,當玩家按下鼠標左鍵的時候,主角會對敵人進行射擊,在本題中,主角射出是一條線段,這個線段有一個最遠距離,也會給場景中的所有對象添加一個層(ShootableMask),也會將敵人添加這個層中,當主角打到這個層中的任何一個對象是,這個線段就會以這個對象作為終點,否則射線就會打到最遠的距離。

4.敵人的產生、移動和動畫播放

4.1 敵人的產生

先在已經搭建好的場景中創建三個空的游戲對象,將它們放置在想要敵人生成的地方,然后再創建一個空的游戲對象來管理這三個位置,將在這個空的游戲對象掛在一個實例化敵人的腳本,其次要將素材中的敵人設置好做成預設體,在腳本中拿到預設體和將要產生敵人的位置,這樣敵人的生成就可以了。

4.2 敵人的移動是通過自動尋路來尋找主角的。

使用Unity中自帶的導航系統,可以讓敵人自動尋路,只要在一開始的時候給敵人一個主角位置,之后就會跟著主角的移動來移動。

4.3 敵人的動畫播放

敵人的動畫的邏輯是,當游戲開始時,給敵人加上移動的動畫,動畫參數選擇Trigger類型的參數,這是從移動的動畫到閑置狀態的動畫之間的切換,它的觸發條件就是當玩家死亡的時候,而敵人死亡的動畫是無論是在移動狀態下還是閑置狀態都會觸發,所以要將死亡的動畫加在任何狀態的狀態上,這樣就可以隨時觸發這個動畫了。

4.4 主角與敵人攻擊邏輯的實現

主角攻擊與主角的健康,在前面提到過主角的射擊,而主角攻擊就是用槍來射擊敵人,并且給槍設置的每發子彈是20點傷害,玩家的血量設置的是100點血量,在實現開始前記錄一個當前玩家的血量和初始血量。

敵人的攻擊與健康,每一個敵人的游戲對象身上都會具有一個觸發器,當敵人接近主角的一定范圍時,敵人就會對玩家發起攻擊,本題中,敵人的攻擊是10點傷害,血量也是100點上限,在開始前也記錄一個當前敵人的血量和初始血量。

4.5 UI界面的搭建與代碼之間的關聯

UI界面的搭建也是游戲制作的重要部分,首先我們先創建一個Panel,并且將它的大小設置與畫布大小一樣,它有一個Image組件,里面有一個Color的屬性,將顏色改變為紅色,然后將它的透明度設置為0,這樣我們在游戲開始時就會看不到。顏色的改變我們就通過主角的健康腳本用代碼來實現,首先我們先獲取到這個能改變這個Panel顏色的組件Image組件,并且要給這個組件賦一個初始值,就是主角受到攻擊以后,顏色顯示為這個初始值,如果沒有受到攻擊,我們就讓顏色通過一個Color.Lerp()的方法漸變為透明,其中,這個方法有三個參數,第一個參數就是主角受到攻擊時的顏色,第二個參數就是Color.clear,第三個參數我們會給一個這個顏色從主角受到攻擊時的顏色到透明的一個漸變的速度,因此我們會在剛開始的時候給一個漸變速度,讓這個速度在乘以一個Time.deltaTime,這樣就是顯得很平滑,不至于突兀。

接下來是主角的血條制作,我們使用的一個是叫Slider的游戲組件,他是一個滑動條,這個組件上有Interactable、Min Value、Max Value、Value屬性,其中第一個屬性是是否可交互,默認為True,如果將其改為False將不能與代碼鼠標完成交互,第二個是這個滑塊的最小值,第三個是這個滑塊的最大值,第四個是這個滑塊的值,默認是0到1,在本題中,我們將主角的值設置為了100,因此我們將這個滑塊的最大值改為100,用來現實主角的血量。

在主角健康的腳本中將主角當前的血量賦值給這個Slider組件,這樣在游戲開始時主角受到攻擊時,那個血量就會根據敵人的攻擊來減少。

主角所得分數的計算,寫一個腳本掛載到顯示分數的文本上,通過這個腳本來獲取每個敵人死亡后的分數。

最后就是我們的音量面板和游戲暫停面板,跟上面的做法一樣,在畫布上選擇一些Slider游戲,不過在這又用了兩個新的游戲對象,一個Button游戲對象,一個Toggle游戲對象,Button游戲對象是可點擊的按鈕,在這通過ESC鍵可以呼出這個面板,最下方有一個繼續游戲(Resume)按鈕,一個離開游戲按鈕(Quit Game),在上面就是一個是否開關聲音的Toggle游戲組件,當取消這個按鈕時,我們的游戲界面將沒有聲音,在上面就是通過我們的Slider游戲對象來實現的。通過與代碼的交互,我們就可以實現以上所說的這些。

5.總結

本次設計的第一人稱射擊的休閑類小游戲,功能單一,后期會逐步完善。

【參考文獻】

[1]吳志達.基于Unity3D游戲引擎的游戲研究與實現[D].中山大學,2012.

[2]李錦榮,郭磊,譚忠揚.基于Unity3D平臺的射擊游戲的開發[J].福建電腦,2015(02)171-173.

主站蜘蛛池模板: 久久亚洲天堂| 国产精品9| 亚洲男人的天堂视频| 亚洲综合第一页| 国产精品亚洲一区二区三区z| 国产精品久久久久久久久| 中文字幕精品一区二区三区视频| 久久精品人妻中文视频| av手机版在线播放| 国产精品手机在线观看你懂的 | 精品国产免费观看一区| 欧美日韩国产系列在线观看| 亚洲色无码专线精品观看| 91高清在线视频| 久久精品只有这里有| 免费一级全黄少妇性色生活片| 日韩国产无码一区| 成人欧美在线观看| 91免费国产在线观看尤物| 欧美a级在线| 精品一区二区三区自慰喷水| 99在线观看免费视频| 国产精品真实对白精彩久久| 国产一在线| 国产靠逼视频| 亚洲无码A视频在线| 国产毛片一区| 91精品免费高清在线| 四虎永久免费网站| 国产精鲁鲁网在线视频| 国产在线一区视频| 国产91色| 国产在线精品99一区不卡| 亚洲床戏一区| 凹凸国产分类在线观看| 亚洲精品动漫| 人妻中文字幕无码久久一区| 亚洲色图在线观看| 99热这里只有精品久久免费| 国产簧片免费在线播放| 亚洲成人在线网| 欧美国产在线看| 人人91人人澡人人妻人人爽| 国产精品女主播| 亚洲国产综合第一精品小说| 无码免费的亚洲视频| 久久午夜影院| 久久九九热视频| 无码内射在线| 91精品综合| 久久婷婷色综合老司机| 国产系列在线| 国产特级毛片| 国产成人一级| 在线观看欧美国产| 青青青视频免费一区二区| 国产在线观看人成激情视频| 婷婷色婷婷| 成人福利在线观看| 日本影院一区| 欧美日韩综合网| 亚洲热线99精品视频| 欧美区国产区| 澳门av无码| 国产喷水视频| 国产精品女人呻吟在线观看| 91精品国产一区自在线拍| 欧美日本激情| 中文字幕在线视频免费| 久久伊人久久亚洲综合| 国产成人成人一区二区| 国产国模一区二区三区四区| 国产成人区在线观看视频| 日韩 欧美 小说 综合网 另类 | 欧美日韩中文字幕二区三区| 99手机在线视频| 中文字幕亚洲专区第19页| 99精品伊人久久久大香线蕉| 欧美精品不卡| 97se亚洲综合在线天天| 久久这里只有精品66| 99久久免费精品特色大片|