狠狠撸
Submit Search
Unity遊戲程式設計 - 2D Game Kit遊戲設計
?
0 likes
?
2,055 views
吳錫修 (ShyiShiou Wu)
Follow
2D Game Kit套件, 編輯場景, 使用移動式平台, 設置機關門, 敵方怪物, 使用互動式道具, 設置陷阱, 設置傳送點, 背景音樂, 遊戲提示訊息
Read less
Read more
1 of 52
Download now
Download to read offline
More Related Content
Unity遊戲程式設計 - 2D Game Kit遊戲設計
1.
2D Game Kit遊戲設計 Revised
on January 1, 2020 ? 2D Game Kit套件 ? 編輯場景 ? 使用移動式平台 ? 設置機關門 ? 敵方怪物 ? 使用互動式道具 ? 設置陷阱 ? 設置傳送點 ? 背景音樂 ? 遊戲提示訊息
2.
? 2D Game
Kit套件內建預製遊戲物件與場景編輯工具,讓初學者不寫 程式碼也能夠快速製作遊戲關卡,並且在操作過程中逐步了解Unity 的遊戲架構以及工作流程 ? 套件的遊戲範例就是?個完整的遊戲,其腳本的功能拆分更是值得觀 摩學習,可以在分析套件資源和腳本關聯的時候學到很多實用技巧 2D Game Kit 1/2 2
3.
? 遊戲範例共有5個關卡,關卡場景相互串聯,玩家控制主角Ellen去收 集鑰匙,期間需要觸碰開關,避開水塘,躲避/攻擊怪物以及與Boss 對戰,內容相當完整 ? AD左右移動 ?
Space跳躍 ? S蹲下 ? S+Space 向下穿透平台 ? O射擊(第二關觸發技能) ? K攻擊(第二關觸發技能) ? E觸發機關 2D Game Kit 2/2 3
4.
? 建立新2D專案 建立遊戲專案 4
5.
? 從Asset Store下載2D
Game Kit並滙入 滙入2D Game Kit套件 5
6.
? 從2DGameKitScenesStart場景開始進行橫版捲軸解密遊戲 測試2D Game
Kit遊戲範例 6
7.
? 選單命令Kit Tools>
Create New Scene… ? 在本練習中,將場景名稱命名為Level 0 新增2D Game Kit場景 1/2 7
8.
? 測試遊戲,預設的場景已加入玩家角色Ellen、UI、代表Ellen生命 值的?臟,以及?個平台 新增2D Game
Kit場景 2/2 8
9.
? Assets2DGameKitPrefabsEllen 玩家角色Ellen 9 Transform 控制物件的位置、旋轉、及縮放 Sprite
Renderer 負責渲染所要顯示的圖像。我們可以改變主顏色, 來調整精靈圖渲染效果 Animator 控制Ellen在不同狀態下的動畫,如跑、閒置或攻擊 Capsule Collider 2D 膠囊形狀碰撞器,負責碰撞處理,它觸發自身的行 為以及它所互動的物件 Rigidbody 2D 使物件具備Unity的物理系統 Character Controller 2D 當玩家在地面上或撞擊地面時,負責操控玩家 Player Input 提供使用者操控遊戲角色之輸入介面 Player Character 管理Ellen角色,依據輸入控制相機、音效、移動和 攻擊動作 Damageable 負責Ellen角色的生命值,以及其它物件對Ellen的損傷 Damager 控制Ellen角色造成的損傷 Bullet Pool Ellen可以射擊的最大子彈數量 Inventory Controller 負責遊戲進度儲存及按鍵設定
10.
? 選單命令Window> 2D>
Tile Palette,開啟鋪貼圖塊工具 編輯場景 1/4 10 選取作業圖區 移動選取圖格 鋪貼圖塊 圖塊調色板 大面積重複鋪貼圖塊 移除圖塊 設定筆刷圖塊 填滿圖塊
11.
? 可透過移動圖格或填補圖格方式,編輯場景上之活動平台 編輯場景 2/4 11 ?選取圖格 ?移動圖格 ?填補圖格
12.
? 有二款調色板,可隨時更換 編輯場景 3/4 12
13.
? 使用岩草圖塊編輯場景 編輯場景 4/4 13
14.
? 使用以下按鍵操作玩家角色 測試遊戲專案 1/3 14 Move
(移動) A, D Jump (跳躍) Space Crouch (蹲下) S Shoot (射擊) O Melee (近戰) K Activate (觸發機關) E Pass Through Platform (向下穿透) S and Space
15.
? F12鍵可切換武器選單 ? 用來啟用/關閉玩家武器功能,方便程式測試除錯 測試遊戲專案
2/3 15 武器選單
16.
? 可動態變更操作按鍵設定 測試遊戲專案 3/3 16
17.
? PrefabsInteractables目錄下有許多互動式預製物件,方便遊戲關 卡設計 2D Game
Kit互動式預製物件 17
18.
? 移動平台 ? Assets2DGameKitPrefabsInteractablesMovingPlatform 設計移動式平台
1/5 18 Transform 控制物件的位置、旋轉、及縮放 Moving Platform 負責平台的運動特性。我們能夠透過此腳本設置我 們的路徑點 Box Collider 2D 矩形狀碰撞器,負責碰撞處理,影響自身以及它所 互動的物件 Rigidbody 2D 使物件具備Unity的物理系統 Platform Effector 2D 套用標準平台特性。例如可以是從下面跳過平台 Platform Catcher 負責捕捉或附著在它上面的物件,以便平台移動時, 使站在其上的所有物件一起移動
19.
? 拖曳MovingPlatform預製物件到場景 Assets/2DGamekit/Prefabs/Interactables/MovingPlatform.prefab ? 使用Tile
Palette中的移動Move工具調整移動路徑 設計移動式平台 2/5 19 MovingPlatform
20.
? Platform Catcher 會自動關連到平台的Platform
Catcher程式 腳本,無需變正 ? Preview Position 調整Preview position值,可預覽檢平台在 場景上的移動情形 ? Start Moving 移動平台是否在場景載入時就自動作用 ? When becoming visible 等移動平台出現在遊戲視窗時才動作 設計移動式平台 3/5 20
21.
? Looping 設定平台移動方式 ? BACK_FORTH:在指定路徑點來回移動 ?
LOOP:自動將最後?個路徑點與起點連接成迴路, 在迴路中循環移動 ? ONCE:只移動?次 ? Speed 設定平台移動(units/每移) ? Add Node增加移動路徑點 設計移動式平台 4/5 21
22.
? 編輯移動路徑 ? 點擊移動平台之Moving
Platform元件的Add Node按鈕新增路徑點,使 用Tile Palette中的移動Move工具調整路徑 設計移動式平台 5/5 22
23.
? 門 ? Assets2DGameKitPrefabsInteractablesDoor 設置機關門
1/5 23 Transform 控制物件的位置、旋轉、及縮放 Sprite Mask 用於隱藏或顯示此遮罩下的視覺效果 Animator 負責控制當前物件的動畫。對Door物件而言,為設 置打開或關閉操作動畫 Audio Source 用來播放開門時的音效(SFX) Random Audio Player 負責選擇隨機SFX,以避免始終重複相同的開啟聲音
24.
? 拖曳Door預製物件到場景 Assets/2DGamekit/Prefabs/Interactables/Door.prefab Assets> ?
拖曳PressurePad預製物件到場景 Assets/2DGamekit/Prefabs/Interactables/PressurePad.prefab 設置機關門 2/5 24 Door PressurePad
25.
? 點擊PressurePad之On Pressed清單下方「+」按鈕,新增?個事件 設置機關門
3/5 25
26.
? 拖曳Door到新事件的None(Object)欄 ? 由No
Function下拉清單中選取Animator> Play(string) ? 在下方的文字框輸入DoorOpening 設置機關門 4/5 26
27.
? 測試遊戲,玩家站上PressurePad,就可打開機關門 設置機關門 5/5 27
28.
? Chomper是具備近戰能力怪物 ? Assets2DGameKitPrefabsEnemiesChomper 敵方怪物預製物件
1/3 28 Transform 控制物件的位置、旋轉、及縮放 Sprite Renderer 負責渲染所要顯示的圖像。我們可以改變主顏色, 來調整精靈圖渲染效果 Animator 負責控制當前物件的動畫 Box Collider 2D 矩形狀碰撞器,負責碰撞處理,影響自身以及它所 互動的物件 Rigidbody 2D 使物件具備Unity的物理系統 Character Controller 2D 在地面上或撞擊地面時動作 Enemy Behaviour AI行為模式 Damageable Chomper生命值,以及其它物件對Chomper的損傷
29.
? Spitter是具備遠程攻擊能力怪物 ? Assets2DGameKitPrefabsEnemiesSpitter 敵方怪物預製物件
2/3 29 Transform 控制物件的位置、旋轉、及縮放 Sprite Renderer 負責渲染所要顯示的圖像。我們可以改變主顏色, 來調整精靈圖渲染效果 Rigidbody 2D 使物件具備Unity的物理系統 Box Collider 2D 矩形狀碰撞器,負責碰撞處理,影響自身以及它所 互動的物件 Character Controller 2D 在地面上或撞擊地面時動作 Enemy Behaviour AI行為模式 Animator 負責控制當前物件的動畫 Damageable Chomper生命值,以及其它物件對Chomper的損傷 Spitter BT 控制噴出汁液作為攻擊的能力
30.
? 怪物產生器 ? Assets2DGameKitPrefabsEnemiesEnemySpawner 敵方怪物預製物件
3/3 30 Transform 控制物件的位置、旋轉、及縮放 Enemy Spawner 負責按照我們設定的參數來產生敵人
31.
? 拖曳Chomper預製物件到場景 Assets/2DGamekit/Prefabs/Enemies/Chomper.prefab ? 拖曳Spitter預製物件到場景 Assets/2DGamekit/Prefabs/Enemies/Spitter.prefab 加入敵方怪物
1/4 31 SpitterChomper
32.
? Enemy Behaviour元件屬性 ?
Sprite Faces Left: 使角色面向左邊 ? Speed: 移動速度 ? Gravity: 所受重力 ? Projectile Prefab: 遠程攻擊類型怪物之噴射物預製物件 ? View Direction: 視線方向,0表示正前方 ? View FOV: 視野角度,0~360 ? View Distance: 視線距離 ? Time Before Target Lost: 玩家超出視線範圍後,敵人停止 追逐或搜尋玩家的延遲時間 加入敵方怪物 2/4 32 FOV View Distance Melee Range
33.
? Melee Range:
近戰攻擊距離 ? Melee Damager: 近戰攻擊造成的傷害 ? Contact Damager: 碰觸造成的傷害 ? Attack Dash: 怪物是否會衝撞玩家 ? Attack Force: 衝撞力道,玩家受衝撞後的後退程度 ? Shooting Origin: 噴射物的射出位置 ? Shooting Audio: 遠程攻擊音效 ? Melee Attack Audio: 近戰攻擊音效 ? Die Audio: 死亡音效 ? Foot Step Audio: 腳步音效 ? Flickering Duration: 被擊中時,閃爍持續的時間 加入敵方怪物 3/4 33
34.
? 測試遊戲 ? F12開啟武器選單 加入敵方怪物
4/4 34
35.
? 可推移的箱子 ? Assets2DGameKitPrefabsInteractablesPushableBox 使用道具物件
1/3 35 Transform 控制物件的位置、旋轉、及縮放 Sprite Renderer 負責渲染所要顯示的圖像。我們可以改變主顏色, 來調整精靈圖渲染效果 Pushable 負責回應玩家的推動動作。此箱子物件共套用了三 個不同的Box Collider 2D元件 Box Collider 2D 矩形狀碰撞器,負責碰撞處理,影響自身以及它所 互動的物件 Rigidbody 2D 使箱子具備Unity的物理系統
36.
? 擴展場景 ? 拖曳PushableBox預製物件到場景 Assets/2DGamekit/Prefabs/Interactables/PushableBox.prefab 使用道具物件
2/3 36 PushableBox
37.
? 在PushableBox加入Damager程式腳本 ? 調整傷害範圍為木箱物件週圍 ?
Hittable Layers = Enemy ? 測試遊戲,玩家可推落木箱去壓死怪物 使用道具物件 3/3 37 傷害範圍
38.
? 尖刺 ? Assets/2DGamekit/Prefabs/Environment/Spikes.prefab 設置陷阱
1/3 38 Transform 控制物件的位置、旋轉、及縮放 Sprite Renderer 負責渲染所要顯示的圖像。我們可以改變主顏色, 來調整精靈圖渲染效果 Box Collider 2D 矩形狀碰撞器,負責碰撞處理,影響自身以及它所 互動的物件 Damager 控制尖刺造成的損害
39.
? 酸液 ? Assets/2DGamekit/Prefabs/Environment/Acid.prefab 設置陷阱
2/3 39 Transform 控制物件的位置、旋轉、及縮放 Box Collider 2D 矩形狀碰撞器,負責碰撞處理,影響自身以及它所 互動的物件 Water Mesh Filter 酸液物件網格 Mesh Renderer 負責在螢幕上渲染/顯示酸液網格 Water Area 負責控制酸液的視覺和聲音效果 Rigidbody 2D 使酸液具備Unity的物理系統 Sprite Mask 用於隱藏或顯示此遮罩下的視覺效果 Damager 控制酸液造成的損害 Buoyancy Effector 2D 酸液添加浮力效果
40.
? 拖曳Spikes預製物件到場景 Assets/2DGamekit/Prefabs/Environment/Spikes.prefab ? 拖曳Acid預製物件到場景 Assets/2DGamekit/Prefabs/Environment/Acid.prefab 設置陷阱
3/3 40 Spikes Acid
41.
? Assets/2DGamekit/Art/Sprites/Environment目錄下有許多裝飾場 景用的Sprite圖片 ? 依需求在場景加入裝飾圖片 裝飾場景 41
42.
? 使用TransitionStart可在相同場景內設置傳送點 ? 拖曳TransitionStart預製物件到場景 Assets/2DGamekit/Prefabs/SceneControl/TransitionStart.prefab ?
拖曳TransitionStart預製物件到場景,更名為TransitionEnd 設置傳送點 1/6 42 TransitionStart TransitionEnd
43.
? 選取TransitionStart ? 設定Transition
Point元件 ? 拖曳Ellen到Transitioning Game Object欄 ? Transition Type = Same Scene ? 拖曳TransitionEnd到Destination Transform欄 ? 測試遊戲 設置傳送點 2/6 43
44.
? 如果要傳送到另?個場景,則目的點要使用TransitionDestination 預製物件 Assets/2DGamekit/Prefabs/SceneControl/TransitionDestination.prefab ? Destination
Tag選取?個字?,只要與同場景中的 TransitionDestination設定值不重複就可以 ? 拖曳Ellen到Transitioning Game Object欄 設置傳送點 3/6 44
45.
? TransitionStart之Transition Point元件設定如下 設置傳送點
4/6 45
46.
? TransitionStart是沒有UI的物件,要增強視覺效果,可使用 Teleporter預製物件取代TransitionStart Assets/2DGamekit/Prefabs/Interactables/Teleporter.prefab 設置傳送點 5/6 46 Teleporter
47.
? Teleporter預製物件用法與TransitionStart相同 設置傳送點 6/6 47
48.
? 背景音樂播放器 ? Assets2DGameKitPrefabsAudioBackgroundMusicPlayer.prefab ?
拖曳BackgroundMusicPlayer預製物件到場景 ? 已有預設背景音樂檔 加入背景音樂 48 Transform 控制物件的位置、旋轉、及縮放 Background Music Player 負責選擇和執行遊戲的背景和環境音樂
49.
? 拖曳DialogueCanvas預製物件到場景 Assets/2DGamekit/Prefabs/UIPrefabs/DialogueCanvas.prefab ? 拖曳InfoPost Assets/2DGamekit/Prefabs/Interactables/InfoPost.prefab 設置遊戲提示訊息解說站
1/4 49 InfoPost
50.
? 設定InfoPost的On Enter()事件作業 ?
拖曳DialogueCanvasmg到None(Object)欄 ? No Function = DialogueCanvasController.ActiveCanvasWithText ? 下方文字框輸入"Tutorial Completed" 設置遊戲提示訊息解說站 2/4 50
51.
? 設定InfoPost的On Exit()事件作業 ?
拖曳DialogueCanvasmg到None(Object)欄 ? No Function = DialogueCanvasController.DeactiveCanvasWithDelay ? 下方文字框輸入"1" 設置遊戲提示訊息解說站 3/4 51
52.
? 測試遊戲,玩家靠近InfoPost就會顯示說明訊息 設置遊戲提示訊息解說站 4/4 52
Download