3D游戏开发套件指南(入门篇)
今天將介紹最新的3D游戲開發套件。不論是使用2D還是3D游戲開發套件,都可以在不編寫任何代碼的情況下,通過設置與拖放便能快捷的實現游戲創意。
?
指南簡介
本指南將引導開發者設置一個空的場景,使用3D游戲開發套件開始創建新的關卡。 這將幫助開發者了解如何使用游戲開發套件創建游戲。3D游戲開發套件中已經包含一個完整的游戲, 其中包含本開發套件中所有功能的相關示例。
你可以訪問Asset Store資源商店下載3D游戲開發套件:
創建新場景
首先我們創建一個新場景。3D游戲開發套件中已含有一個工具可以自動創建一個新的默認場景,其中包含我們的英雄Ellen和移動、攻擊所需要的元素以及地面元素。
點擊Unity瀏覽器頂部菜單Go to Kit Tools (訪問套件工具),選擇Create New Scene(創建新場景)。
?
輸入新場景名稱。
?
點擊創建,新創建的場景中,將包含:地面,Ellen、UI元素和游戲菜單。
?
點擊編輯器頂部菜單Play(播放)按鈕。
?
我們的玩家角色Ellen控制方式如下。
?
添加移動平臺
我們將為場景添加移動平臺。所有可交互對象都能在項目的Prefabs > Interactables目錄中找到。
添加MovingPlatform的步驟如下:
?
- 找到項目窗口,打開Assets > 3DGameKit > Prefabs > Interactables。
- 左鍵單擊并拖拽MovingPlatform 對象到場景視圖中。
?
- 使用Transform工具來將平臺平移(W)、旋轉(E)和縮放(R)到合適的位置。
?
- 在編輯器頂部點擊Play。
MovingPlatform 目前是靜止的。我們要讓它動起來:
?
- 在場景視圖中的MovingPlatform 上找到End Point(終點)工具。
?
- 查看檢視窗口。
- 找到Simple Translator 組件。
- 使用Preview Position (預覽位置)上的滑塊來查看平臺的移動位置。
?
- 在Simple Translator 組件,勾選Activate。
?
點擊Play,MovingPlatform 將向上移動,并在到達設定路徑頂端時停下。
我們要讓這個平臺來回移動,首先選中MovingPlatfrom :
?
- 查看檢視窗口,找到Simple Translator 腳本。
- 將Loop Type(循環模式)設為Ping Pong(乒乓球模式)。
?
點擊Play,MovingPlatform 會向上移動到頂部再向下移動。它會移動到任意被設定為End Point的位置。
使用指令開門
在3D游戲開發套件中,游戲指令(Game Commands)能發送信號給Unity中的其它對象,讓它們執行動作。
在這里我們將使用壓力板(Pressure Pad)來打開一扇門。首先添加門對象到場景中:
?
- 在項目窗口中,打開Prefabs > Interactables。
- 找到DoorSmall 并拖入場景視圖中。
?
對象上會有很多輔助圖示。我們可以通過調整讓對象上只顯示用于操作物體或者放置物體的Transform工具。
在層級窗口選中DoorSmall對象,查看檢視窗口。
?
- 點擊Simple Translator組件上的箭頭圖標,折疊組件信息。
- 這樣就只會顯示對象的Transform工具,使用Transform工具來放置DoorSmall 對象。
?
現在我們添加壓力板:
?
- 在項目窗口中,打開Prefabs > Interactables。
- 找到PressurePad 對象并點擊拖入場景視圖中。
- 使用Transform工具將其放到門口附近。
?
現在將PressurePad和DoorSmall連接起來,從而在Ellen踩到壓力板的時候,大門會打開。
?
- 在層級窗口點擊選中PressurePad對象。
?
- 在層級窗口中,點擊拖拽DoorSmall對象到PressurePad對象上Send on Trigger Enter 組件的Interactive Object(交互對象)屬性欄中。
?
這時在場景視圖中,會出現一個白色帶箭頭的線,顯示PressurePad和DoorSmall之間的連接關系。
?
點擊Play,當Ellen踩上壓力板時,壓力板會發光,下降并使門口打開。
敵人對象
在開發套件中,有三個預制敵人對象Chomper、Spitter和Grenadier。它們可以在Prefabs > Characters > Enemies > […..]目錄下找到。
Chomper是個近戰敵人;Spitter是遠程敵人,能造成遠距離傷害;Grenadier是Boss級敵人,有著特別的攻擊模式,混合著遠程傷害、近戰傷害和盾形防御三種行動方式。
?
首先將Chomper放入場景中,與Ellen交戰:
?
- 在項目窗口中,打開Prefabs > Characters > Enemies > Chomper。
- 將Chomper拖入場景視圖中。
- 使用Transform工具來移動Chomper的位置。
?
在Chomper前會出現一個大型深藍色半圓,這是它的探測半徑(Detection Radius)。當Ellen走入這個區域中時,Chomper會追逐并攻擊Ellen。
現在我們減少Chomper的視野區域,在層級窗口中選中Chomper對象。
?
- 在檢視窗口中,找到Chomper Behaviour 組件。
- 點擊Player Scanner (玩家掃描器)旁的小箭頭展開它。
?
- 將Detection Radius的數值設為3。
?
現在要讓Chomper只能看到前方的物體:
?
- 拖動Detection Angle(探測角度)滑塊,二手手游賣號平臺將數值設為180。
?
現在Chomper只能看到它前方的物體,能看到的距離也更短了。
?
注意:如果想要從場景視圖中移除這個輔助圖示,折疊Chomper Behaviour 組件即可。
?
- 點擊Play,讓Ellen在Chomper附近奔跑。
?
Chomper會探測到Ellen,但只會原地跑動。我們要告訴Chomper它所能移動的地方,于是我們加入NavMesh Surface(尋路網格面)。
?
- 在層級窗口中點擊Plane對象。
?
- 在檢視窗口中,點擊Add Component,搜索NavMeshSurface。
?
- 在腳本上點擊鍵盤的回車鍵,添加組件到Plane對象上。
- 找到NavMesh Surface組件,設置Agent Type(代理類型)為Chomper(這對所有敵人類型都適用)。
- 設置Include Layers(包含圖層 )為Nothing(無),選擇Environment(環境),選擇Vegetation(植被)。
?
- 在NavMesh Surface 組件底部,點擊Bake(烘焙)。
這時會在地面上出現一個淺藍色表面,它指明場景中的敵人所能移動的位置。
點擊Play,移動到Chomper面前,Chomper現在會追著你并進行攻擊,左鍵點擊并使用道具進行攻擊。
?
Chomper會在受到一次攻擊后死亡。如果想要提高攻擊次數:
?
- 在層級窗口中,選中Chomper。
- 在檢視窗口找到Damageable組件。
- 根據你想要Chomper死前所能承受的傷害,提高Max Hit Points(生命值上限)。Ellen的道具每次造成一點傷害。
造成對象傷害
我們可以使用接觸傷害源(Contact Damager)組件來對擁有Damageable 組件的對象造成傷害。
在此使用一個箱子和Chomper進行演示:
?
- 在項目窗口中,打開Prefabs > Interactables。
- 找到DestructibleBox 預制件,點擊拖入場景視圖中。
- 使用平移工具將箱子放在Chomper上方。
點擊Play,箱子會下落到在Chomper上,然后呆在那里,什么都沒發生。
?
注意:不要離Chomper太近,否則它會追逐Ellen。你可以降低它的探測半徑為0。
?
我們想要箱子在砸到Chomper時造成傷害。
?
- 在層級窗口中點擊DestructibleBox 旁的箭頭,展開其子對象。
- 選中DestructibleBox子對象。
?
- 查看檢視窗口移至檢視窗口底部,點擊Add Component,搜索Box Collider。
- 按下鍵盤上的回車鍵或是點擊Box Collider組件將其添加到DestructibleBox對象上。
- 在Box Collider組件上,勾選Is Trigger 屬性。
?
- 點擊Add Component,搜索Contact Damager(接觸傷害源)。
- 點擊鍵盤上的回車鍵或是點擊Contact Damager腳本將其作為組件加入對象。
- 在Contact Damager組件上,將Amount(傷害量)設為3,要注意傷害量必須與Chomper的Max Hit Points數值相等,從而使Chomper受到足夠的傷害。本例中我們設為3,請記得檢查Chomper的Damageable 組件上的Max Hit Points。
- 設定Damaged Layers (傷害圖層)為Enemy。
?
按下Play,箱子會落到Chomper上,Chomper會丟失生命值,然后轉變為布娃娃(ragdoll)狀態,而箱子則會彈開。
?
我們已經成功對Chomper造成足夠傷害并擊殺,但這個效果看起來不夠好。我們可以讓箱子在砸中Chomper時裂開。箱子上已經有接觸傷害源,所以我們要對其進行調整使它也會影響箱子自身。
?
- 查看層級窗口,找到Chomper并選中。
- 查看檢視窗口,點擊Add Component ,搜索Contact Damager。
- 按下鍵盤上的回車鍵或點擊腳本名,將其添加到Chomper上。
- 在Contact Damager組件上將Amount 設為1。
- 在Damaged Layer屬性下拉列表中選中Enemy。
?
按下Play箱子會砸到Chomper上,并在碰撞時破裂,讓Chomper丟失所有生命值并轉為布娃娃狀態。
?
裝飾
在開發套件中,我們提供了在構建示例游戲中所使用的所有環境對象,它們被分散到多個不同資源類型的文件夾中。請查看這些文件夾,開始構建出自己的場景,你可以在Prefabs > Environment > [….]目錄下找到它們。
你會創建出怎樣的世界呢?
?
我們需要為敵人對象重新烘焙NavMesh,使它們知道哪些是新增的可移動平面,或是讓它們知道要避免哪些對象,例如:大型植物。
?
- 在層級窗口中選中Plane。
- 查看檢視窗口,在NavMesh表面點擊Bake。
?
石塊和植被繪畫器
為了進一步裝扮場景,我們創建了一個石頭繪畫器和植被繪畫器。這些工具能讓你以多種大小和旋轉方向放置植被和石塊,并使它們與所放置的平面對齊。
如果要使用這些工具,在層級窗口找到VegetationPainter,點擊小箭頭來展開子對象。
?
點擊GroundCover,將鼠標移到場景視圖中的平面上,左鍵點擊放置一些草被或睡蓮。
?
你可以修改放置對象的類型,查看檢視窗口在Instance Painter組件中,有繪畫器中每個預制件的圖片。
?
點擊白色高亮方框,選中要繪制的預制件,被選中的預制件會變為灰色。
我們可以在Instance Painter組件頂部的方框中找到繪畫器的操作說明,這里介紹一些簡單操作:
?
- 左鍵點擊 = 繪圖
- Ctrl (Cmd) + 左鍵點擊 = 刪除
- Alt + 滾輪 = 調整筆刷大小
- 空格鍵 = 隨機設置位置和旋轉角度
我們繪制的任意對象會保存為子對象。例如:查看層級窗口,展開GroundCover。所繪制的類型對象都會保存其為子對象。我們可以點擊它們來單獨編輯和放置。
?
這個過程和繪制VegetationSmall、VegetationMedium和VegetationLarge的過程一致。
?
我們可以用同樣的方法繪制石塊,在層級窗口中找到RockPainter,點擊小箭頭展開子對象,點擊RocksSmall,將鼠標移動到想要的位置并點擊左鍵放置石塊。
?
傳送玩家
在3D游戲開發套件中,我們有一個傳送系統。可以將Ellen傳送到其它關卡,或是場景中的不同位置。
首先在場景中創建傳送器,在項目窗口中,打開Prefabs > Structures找到GateWayHugeTeleporter。
從名字可以看出這個入口很大:
?
- 使用縮放工具和平移工具定位并縮放這個對象為Ellen的大小。
- 在層級窗口中展開GatewayHugeTeleporter ,暴露其子對象,選TeleportPlane。
- 查看檢視窗口,點擊Add Component,搜索BoxCollider。
- 按下鍵盤上的回車鍵或是點擊BoxCollider 來添加組件到TeleportPlane對象上。
- 在Box Collider 組件上勾選Is Trigger。
?
- 點擊Add Component,搜索Teleporter。
- 按下回車鍵或是點擊Teleporter腳本來將其添加到TeleportPlane對象上。
?
- 在Teleporter 組件上,將Layer(圖層)改為Player(玩家)。
- 在層級窗口上,找到Checkpoints對象。
- 點擊Checkpoint 對象旁邊的箭頭展開其子對象。
?
- 在層級窗口選中TeleporterPlane 。
- 將子對象Checkpoint對象拖入Teleporter 組件的Destination Transform屬性欄。
- 在層級窗口找到并展開Ellen,顯示其子對象,找到RespawnParticles對象。
?
- 在層級窗口上選中GateWayHugeTeleporter 。
- 將RespawnParticles 拖到Teleporter組件的Enter Effect(進入特效)屬性欄中。
- 將RespawnParticles 拖到Teleporter組件的Exit Effect (離開特效)屬性欄中。
- 按下Play并測試,讓Ellen跑到傳送器中。
?
在通過傳送器時,Ellen會傳送到最初的出生點,并會出現藍色的粒子包圍著她。
小結
在3D游戲開發套件中的多數對象會使用類似壓力板功能的事件系統。我們可以探索Scenes > GamePlay 中的已有場景,了解其它對象在第一關和第二關是如何使用指令系統設置的。
今天的3D游戲開發套件指南入門篇就為大家介紹到這里,后續我們會分享相關套件的進階開發篇,盡請期待,希望開發者能使用游戲開發套件盡情享受游戲設計的快樂!
總結
以上是生活随笔為你收集整理的3D游戏开发套件指南(入门篇)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 揭秘《死者之书》之环境资源及特效创作
- 下一篇: Unity VS Unreal,游戏开发