游戲原型系列 vol.14 3D Game Kit快速開始
摘要
3DGameKit(3D游戲套件)。這是官方出品的一套游戲原型模版,無需編寫任何代碼即可連接游戲的機(jī)制,工具,系統(tǒng)和資產(chǎn)的集合。這套工具功能十分豐富,使用它可以方便快速的制作出一款動(dòng)作冒險(xiǎn)類游戲。
1.快速入門指南簡(jiǎn)介
本教程將引導(dǎo)您逐步完成在3D游戲套件中設(shè)置空白場(chǎng)景的操作,以開始創(chuàng)建新關(guān)卡。這將引導(dǎo)您了解該工具包中用于創(chuàng)建游戲玩法的一些基礎(chǔ)知識(shí)。該套件隨附一個(gè)預(yù)制游戲,其中包含您在使用創(chuàng)意時(shí)會(huì)遇到的使用套件各個(gè)部分的示例。這套工具可以在Unity的AssetStore進(jìn)行下載。

2.制作新場(chǎng)景
讓我們從創(chuàng)建一個(gè)新場(chǎng)景開始。我們已經(jīng)制作了一個(gè)工具,可以創(chuàng)建一個(gè)場(chǎng)景,其中包含您需要一點(diǎn)地面的一切,而我們的英雄艾倫(Ellen)可以四處奔跑和進(jìn)攻。
轉(zhuǎn)到Kit Tools(工具包工具)> New Scene Name(創(chuàng)建新場(chǎng)景)

在“ New Scene Name(新場(chǎng)景名稱)”中,輸入場(chǎng)景的名稱。

點(diǎn)擊Create(創(chuàng)建)
您的新場(chǎng)景將顯示地面,Ellen,一些UI和游戲菜單。

在編輯器頂部,按Play

Ellen(我們的玩家角色)的控件如下:
移動(dòng)?W,S,A,D
跳躍??空格鍵?
攻擊 鼠標(biāo)左擊
相機(jī)控制 鼠標(biāo)
暫停?ESC

3.在3D游戲套件中添加移動(dòng)平臺(tái)
我們將在場(chǎng)景中添加一個(gè)移動(dòng)平臺(tái)。所有可交互對(duì)象都在Prefabs> Interactables(交互對(duì)象)中
要添加MovingPlatform:
導(dǎo)航到“ 項(xiàng)目”窗口
轉(zhuǎn)到資產(chǎn)> 3DGameKit > 預(yù)制件>Interactables(可交互對(duì)象)
左鍵單擊并將MovingPlatform 拖動(dòng)到場(chǎng)景視圖中


使用變換工具在所需的平臺(tái)上進(jìn)行平移(W ),旋轉(zhuǎn)(E)和縮放(R)。

在編輯器頂部,按Play
該MovingPlatform 將是靜止的。讓我們動(dòng)起來:
在“ 場(chǎng)景”視圖中的MovingPlatform 上找到End Point(端點(diǎn)工具)


導(dǎo)航到檢查器
在Simple Translator組件中
使用“ Preview Position(預(yù)覽位置)” 滑塊查看平臺(tái)的去向

在“ Simple Translator” 組件中,選中“ Active(激活)” 框

按播放
您的MovingPlatform 將向上移動(dòng),并在到達(dá)您設(shè)置的路徑的頂部時(shí)停止。
讓我們來回移動(dòng),選擇“ MovingPlatfrom” :
導(dǎo)航到檢查器
在Simple Translator腳本中
將Loop Type(循環(huán)類型)設(shè)置為PingPong(乒乓)

按播放
現(xiàn)在,MovingPlatform 將移至頂部,然后再次返回。該MovingPlatfrom 會(huì)去你設(shè)置為任意位置終點(diǎn)。
4.用命令打開一扇門
在3D游戲工具箱中,游戲命令向Unity中的其他對(duì)象發(fā)送信號(hào),告訴他們執(zhí)行操作。
我們將使用壓力墊打開門。讓我們?yōu)閳?chǎng)景添加一扇門:
在“ 項(xiàng)目”窗口中,轉(zhuǎn)到“ Prefabs(預(yù)制件)” >“Interactables(可交互對(duì)象)”
查找DoorSmall 并將其拖動(dòng)到“ Scene View(場(chǎng)景視圖)”中

該對(duì)象上的Gizmos可能是壓倒性的??梢哉{(diào)整它們以僅顯示用于對(duì)象或易于放置的“Transform(變換)”工具:
隨著DoorSmall 在層次結(jié)構(gòu),導(dǎo)航到Inspector選擇。
單擊“ Simple Translator” 組件上的箭頭以將其折疊



現(xiàn)在僅顯示對(duì)象的“變換”工具。
使用所需的變形工具將DoorSmall 定位。
讓我們添加一個(gè)壓力墊:
在“ 項(xiàng)目”窗口中,轉(zhuǎn)到“ 預(yù)制件” >“可交互對(duì)象”
找到PressurePad ,然后單擊并將其拖動(dòng)到“ 場(chǎng)景視圖”中
使用Transform Tools(變形工具)并將其放置在門附近

現(xiàn)在,讓我們連接PressurePad(壓墊) 和DoorSmall,以便當(dāng)Ellen 踩在壓墊上時(shí),門即可打開。
在層次結(jié)構(gòu)中,單擊PressurePad 將其選中

在層次結(jié)構(gòu)中,單擊DoorSmall 并將其拖到PressurePad 上“Send on Trigger Enter(觸發(fā)時(shí)發(fā)送輸入)” 組件中的“ Interactive(交互式對(duì)象)” 插槽中。

在“ 場(chǎng)景視圖”中,應(yīng)該有一條白色箭頭線,顯示從PressurePad 到DoorSmall 的連接。

按播放鍵
當(dāng)Ellen踩到壓力墊時(shí),壓力墊將發(fā)亮,下降并使門打開。

5.?3D游戲套件中的敵人
3D游戲套件中有3個(gè)預(yù)制敵人??梢栽凇?Prefabs(預(yù)制件)” >“ Characgers(角色)” >“ Enemies(敵人)” >“ [.....]”中找到
敵人是“Chomper”,“Spitter”和“Grenadier(擲彈兵)”。Chomper是近距離近戰(zhàn)敵人,Spitter是遠(yuǎn)程射程敵人,而擲彈兵是具有特定攻擊模式,混合射彈,近戰(zhàn)和盾牌爆破防御的首領(lǐng)型敵人。

?讓我們?cè)趫?chǎng)景中放置一個(gè)Chomper以便Ellen戰(zhàn)斗:
在“ 項(xiàng)目”窗口中,轉(zhuǎn)到“ 預(yù)制件” >“ 角色” >“ 敵人” >“ Chomper”
將Chomper 拖到“ 場(chǎng)景視圖”中
使用“ 變換工具” 將Chomper放置在所需的位置

在Chomper的前面會(huì)出現(xiàn)一個(gè)深藍(lán)色的大半圓,這是他的Detection Radius(偵測(cè)半徑)。當(dāng)艾倫(Ellen)進(jìn)入該區(qū)域時(shí),他將追趕并攻擊她。
在“ 層次結(jié)構(gòu)”中選擇“ Chomper”后,讓我們減小他可以看到的區(qū)域。
在檢查器中,導(dǎo)航到“ Chomper Behavior” 組件
通過單擊旁邊的箭頭展開“ Player Scanner(玩家掃描器)”

在“ 檢測(cè)半徑”中,將該值設(shè)置為3?

讓我們也使Chomper僅能從前面看到:?
將檢測(cè)角度滑塊滑到180

現(xiàn)在,Chomper只能看到更近距離的物體。

注意:要從“ 場(chǎng)景視圖”中刪除此Gizmo ,請(qǐng)折疊“ Chomper Behavior” 組件。
按Play 并在Chomper 附近運(yùn)行

Chomper會(huì)檢測(cè)到Ellen,但只能當(dāng)場(chǎng)運(yùn)行。我們需要告訴Chomper他可以在地面上移動(dòng)的位置,我們通過添加NavMesh Surface來做到這一點(diǎn)。
在層次結(jié)構(gòu)中,單擊Plane(平面)

在檢查器中,轉(zhuǎn)到“ 添加組件”
搜索NavMeshSurface

在鍵盤上按Enter鍵或單擊腳本以將組件添加到Plane
導(dǎo)航到“ Nav Mesh Surface” 組件
將“ Agent Type” 設(shè)置為“ Chomper” (用于所有敵人類型)
將“ Include Layers(包括層)” 設(shè)置為“無”
現(xiàn)在在“ ?Include Layers”上,選擇“ Environment(環(huán)境)”
在“ 包括層”上,選擇“ Vegetation(植被)”
?

在“ 導(dǎo)航網(wǎng)格表面” 組件的底部,單擊“ 烘焙”。
淺藍(lán)色表面將出現(xiàn)在地面移動(dòng)平臺(tái)的頂部。這可以告訴您放置在場(chǎng)景中的任何敵人他們可以行走。
按Play 并在Chomper 前面運(yùn)行
現(xiàn)在,Chomper將在您攻擊后開始運(yùn)行!
使用鼠標(biāo)左鍵用你的法杖攻擊!

一擊,Chomper就會(huì)死亡。要增加這個(gè):
在層次結(jié)構(gòu)中,選擇“ Chomper”
在檢查器中,導(dǎo)航到“ Damageable(損傷組件)”
將“ Max Hit Points(最大生命值)” 增加到您希望Chomper 死前要承受的命中次數(shù)。艾倫的員工獲得1點(diǎn)生命值

6.3D游戲套件中的物體的傷害
我們可以使用Contact Damager(接觸式傷害器)對(duì)具有Damageable(可傷害)組件的對(duì)象造成傷害。
我們可以使用盒子和切碎機(jī)演示其工作原理
在“ 項(xiàng)目”窗口中,轉(zhuǎn)到“ 預(yù)制件” >“可交互對(duì)象”
找到DestructibleBox Prefab,然后單擊并將其拖到“ 場(chǎng)景視圖”中
使用Translate Tool將框放置在Chomper 上方
?█將其高高放置,以便您有時(shí)間在測(cè)試中查看它

按播放
盒子會(huì)掉落并落在Chomper上,并停留在那兒,什么也沒發(fā)生。
注意:不要離Chomper太近,否則他會(huì)追趕Ellen。如果愿意,您始終可以將其檢測(cè)半徑減小為0。

我們需要盒子在碰到Chomper時(shí)造成損壞
在層次結(jié)構(gòu)中,單擊DestructibleBox 旁邊的箭頭以顯示其子級(jí)
選擇DestructibleBox 子級(jí)

導(dǎo)航到檢查器
滾動(dòng)到檢查器的底部,然后單擊“ 添加組件”
搜索Box Collider(盒碰撞體)
點(diǎn)擊鍵盤上Enter(回車)或點(diǎn)擊Box Collider組件,將其添加到DestructibleBox
在Box Collider 組件上,勾選Is Trigger 框

單擊添加組件
搜索Contact Damager
點(diǎn)擊鍵盤上Enter(回車)或點(diǎn)擊Contact Damager腳本將其添加為一個(gè)組件
在“ Contact Damage組件”中,將“ Amount(數(shù)量)” 設(shè)置為3
?█請(qǐng)注意,損壞金額必須等于您為Chomper設(shè)置的Max Hit Points(最大生命值),以便他獲得全部損傷數(shù)。我們?cè)陧?xiàng)目中將其更改為3,確保您檢查了Chomper的Damageable組件的Max Hit Points
將Damaged Layers設(shè)置為Enemy(敵人)

按播放

盒子會(huì)落在Chomper上,失去生命,變成布娃娃狀態(tài),盒子會(huì)彈開。我們已經(jīng)成功造成足夠的傷害以殺死Chomper,但是這種效果看起來并不理想。當(dāng)碰到Chomper時(shí),我們可以打破框框。它已經(jīng)有一個(gè)接觸破壞者,所以讓我們對(duì)其進(jìn)行調(diào)整以影響包裝盒。
在層次結(jié)構(gòu)中
查找Chomper 并選擇它
導(dǎo)航到檢查器
滾動(dòng)到檢查器底部
單擊添加組件,然后搜索Contact Damager
點(diǎn)擊鍵盤上Enter或點(diǎn)擊腳本將它添加到Chomper
在Contact Damager組件中
將Amount設(shè)置為1
在Damaged Layers下拉列表中選擇Enemy?

按播放?
盒子會(huì)掉落在Chomper上,撞擊會(huì)破裂,并使Chomper 失去所有HP和布娃娃。

7.在3D游戲套件中進(jìn)行裝飾
在游戲工具包中,我們提供了用于構(gòu)建示例游戲的所有環(huán)境對(duì)象。
您可以在Prefabs > Environment > […。]中找到這些。
它們被分為不同資產(chǎn)類型的文件夾。瀏覽文件夾并開始構(gòu)建場(chǎng)景。
您可以創(chuàng)造什么世界?

注意:您將需要重新烘焙NavMesh,以使敵人知道添加的新表面是可行走的,或者他們需要避開物體(例如大植物)。
在層次結(jié)構(gòu)中,選擇Plane
導(dǎo)航到檢查器
在NavMesh 曲面中,單擊“ Bake(烘焙)”。

Rock and Vegetation Painter(巖石和植被畫家)
為了進(jìn)一步完善您的場(chǎng)景,我們創(chuàng)建了Rock Painter和Vegetation Painter。這些工具可讓您放置具有不同大小和旋轉(zhuǎn)度的植被和巖石,同時(shí)使其與您要繪畫的表面對(duì)齊。
要使用這些工具:
在層次結(jié)構(gòu)中,找到VegetationPainter
單擊向下箭頭以展開其子級(jí)

點(diǎn)擊GroundCover
將鼠標(biāo)懸停在“ 場(chǎng)景視圖”中的地面上
左鍵單擊以將一些草皮/lilly pads放在您想要的地方。

您可以更改要執(zhí)行此操作的對(duì)象的類型:
導(dǎo)航到檢查器
在“Instance? Painter(實(shí)例畫家)”組件中,有畫家中每個(gè)預(yù)制件的圖片。

單擊突出顯示的白色框以選擇要使用的預(yù)制件。
所選的預(yù)制件將為灰色
畫家的控件可以在“ 實(shí)例畫家” 組件的頂部找到,以下是一些入門的控件:
左鍵=繪制
Ctrl(Cmd)+左鍵=刪除
Alt +滾動(dòng)=增加畫筆大小
空格鍵=將位置和旋轉(zhuǎn)隨機(jī)化
您在其上繪畫的任何對(duì)象都將被存儲(chǔ)為“父集的子集 ”。例如:
導(dǎo)航到層次結(jié)構(gòu)
展開GroundCover

油漆中該類型的每個(gè)對(duì)象都將作為子集存儲(chǔ)在這里。您也可以單擊它們以單獨(dú)編輯和放置它們。
涂裝植被小,植被中和大型植被的過程相同

繪畫巖石的方法相同:
在層次結(jié)構(gòu)中找到RockPainter
點(diǎn)擊RocksSmall
將鼠標(biāo)懸停在所需區(qū)域上以放置巖石,然后單擊以放置。

8.用3D游戲套件傳送玩家
游戲套件中有一個(gè)隱形傳送系統(tǒng)。您可以將艾倫傳送到其他級(jí)別或場(chǎng)景中的其他地方。
讓我們?cè)趫?chǎng)景中創(chuàng)建一個(gè)傳送器:
在“ 項(xiàng)目”窗口中,轉(zhuǎn)到“ 預(yù)制件” >“ 環(huán)境” >“ Structures(結(jié)構(gòu))”
查找GateWayHugeTeleporter
將GateWayHugeTeleporter 拖到場(chǎng)景中
顧名思義,大門非常龐大:
使用“ Scale Tool(縮放工具)” 和“ Translate Tools(平移工具)” 將其定位并縮放為埃倫的大小
在層次結(jié)構(gòu)中,展開GatewayHugeTeleporter 以展開其子級(jí)
選擇TeleportPlane(轉(zhuǎn)送平臺(tái))
導(dǎo)航到檢查器
單擊添加組件
搜索BoxCollider
點(diǎn)擊鍵盤的回車或點(diǎn)擊BoxCollider 將組件添加到TeleportPlane
在Box Collider 組件上,勾選Is Trigger(觸發(fā))

單擊添加組件
搜索Teleporter(傳送器)
在鍵盤上按Enter,或單擊Teleporter 腳本將其添加到TeleportPlane

在傳送器組件中
將Layer更改為Player
在層次結(jié)構(gòu)中,找到檢查點(diǎn)
單擊Checkpoint 旁邊的箭頭以展開其子級(jí)

隨著TeleporterPlane 在選定的層次
將Checkpoint (子項(xiàng))拖到Teleporter 組件的Destination Transform 字段中
在Hiearchy中查找并擴(kuò)展Ellen 以顯示其子級(jí)
查找RespawnParticles

隨著TeleportPlane 在選定的Hierarchy(層次)?
拖動(dòng)RespawnParticles 到Enter Effect(輸入效果 )的Teleporter(傳送器)
將RespawnParticles 拖動(dòng)到Teleporter 上的Exit Effect(退出效果)中
按播放并通過運(yùn)行傳送器進(jìn)行測(cè)試

當(dāng)穿越傳送器時(shí),艾倫會(huì)傳送到她最初出現(xiàn)的位置,藍(lán)色粒子將包圍她。
?
9.玩3D游戲套件
套件中的大多數(shù)對(duì)象都可以在“Pressure Pad(壓力墊設(shè)置)”中看到的“Events system(事件系統(tǒng))”下播放。
在“ 場(chǎng)景” >“ 游戲”中瀏覽現(xiàn)有場(chǎng)景,以了解如何使用關(guān)卡1和關(guān)卡2中的命令系統(tǒng)設(shè)置其他對(duì)象。
有關(guān)所有組件及其參數(shù)的詳細(xì)信息,請(qǐng)參見組件文檔。
愿你能享受到關(guān)卡設(shè)計(jì)的樂趣!