unity遊戲程式設計(01) unity簡介
Post on 22-Jan-2018
1.091 Views
Preview:
TRANSCRIPT
電子工程系車用電子與資訊組
Unity遊戲程式設計(01)Unity簡介
吳錫修
September 11, 2017
shap
e th
e fu
ture
Unity Technologies公司於2005年推出的⼀款功能強⼤的遊戲開發工具
4.2版以前專為3D遊戲開發而設計,稱為Unity 3D
4.3版本起增加⼀套2D遊戲開發工具包,加入2D物理引擎,重新正名為Unity;開發遊戲專案時可選擇2D或3D遊戲專案
關於Unity 1/3
2 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
2015年3月推出Unity 5版本
個人版 (personal):營收在10萬美元以下的用戶可免費使用
專業板 (professional):每月75美元起
關於Unity 2/3
3 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
2017年7月推出Unity 2017.1版本
Timeline視覺化工具,可用於創建影視內容,例如過場動畫、預告片、遊戲試玩視頻等
Cinemachine相機系統,您可以像電影導演⼀樣,在Unity中合成鏡頭,無需編寫任何代碼
Post-processing可以很方便地為場景應用各種逼真濾鏡,使用電影工業級技術、控制項和顏色空間格式來創造高品質視覺效果
關於Unity 3/3
4 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
https://unity3d.com/cn/get-unity/download/archive
下載unity軟體 1/2
5 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
下載unity軟體 2/2
6 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
註冊Unity ID
7 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
範例專案
8 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
教學專案
9 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
Unity編輯環境 1/2
10 Wu, ShyiShiou Dept. of E.E., NKUT
階層面板
專案面板及控制台面板
場景面板及遊戲面板
屬性面板
工具列系統選單
shap
e th
e fu
ture
功能選單Window\Layouts可選用不同的版面配置
系統選單:控制Unity的設定與調整遊戲專案
工具列:包含變形工具、撥放控制及功能面板排列操作工具
階層面板 (Hierarchy):列出場景中的所有遊戲物件及彼此之間的階層關係
專案面板 (Project) 及控制台面板 (Console):顯示專案內的素材及除錯訊息
場景面板 (Scene) 及遊戲面板 (Game):編輯場景及遊戲執行的顯示
屬性面板 (Inspector):檢視及調整物件的屬性
Unity編輯環境 2/2
11 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
顯示目前場景中的所有物件,並依照物件間的階層關係排列
例如最上層物件有攝影機 (Cameras)、車子 (Car)、燈光 (Lighta)…
車子物件包括碰撞器 (Colliders)、輪轂 (WheelsHubs)…
階層面板 (Hierarchy) 1/2
12 Wu, ShyiShiou Dept. of E.E., NKUT
GameObject選單命令
shap
e th
e fu
ture
將物件拖曳到另⼀物件下,物件就被群組在⼀起,最上層物件稱為父物件,其它物件則為其子物件
⼀個不屬於任何群組的物件,是以世界座標原點為參考點;而子物件則是以其以父物件為座標原點
子物件會隨著父物件旋轉、移動、縮放
雙擊列表中的物件,可快速將視角切換到該物件位置
階層面板 (Hierarchy) 2/2
13 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
變形工具:對選取物件進行移動、旋轉、縮放、平面編輯 (2D物件)
工具列 1/4
14 Wu, ShyiShiou Dept. of E.E., NKUT
變形工具 遊戲撥放控制 面板排列
Unity服務
帳號作業
圖層管理群組中心與座標
平移場景(Q) 旋轉物體(E)
(T)針對一個平面進行移動、旋轉及縮放,在編輯2D物件時較常使用
移動物體(W) 縮放物體(R)
shap
e th
e fu
ture
群組軸心:Center表示群組以全部物件的中心做為軸心,Pivot表示以父物件中心點做為群組物件軸心
座標系統:自身座標 (Local) 的原點以及方向是以物件本身的位置及方向為基準,世界座標 (Global) 是以場景中心為原點
遊戲撥放控制
遊戲執行時,所有遊戲物件及其元件的操作都是暫時的,當停止執行後,就會恢復到執行前的狀態
工具列 2/4
15 Wu, ShyiShiou Dept. of E.E., NKUT
群組軸心 座標系統
執行遊戲 單步執行
暫停執行
shap
e th
e fu
ture
服務視窗:啟用/關閉Unity服務,必須先登入Unity
工具列 3/4
16 Wu, ShyiShiou Dept. of E.E., NKUT
開啟Unity服務選單
登入/登出Unity帳號
shap
e th
e fu
ture
圖層管理:設定專案圖層
面板排列:設定面板排列方式
工具列 4/4
17 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
管理專案使用到的檔案,這些檔案存在Unity專案資料夾內的Assets資料夾內
最好建立子資料夾分門別類管理不同資源類型,常用資源包括:
場景 (Scene)、預製物件 (Prefab)、程式腳本 (Script)、3D模型 (Model)、圖片 (Sprite)、音效 (Audio)、動畫 (Animation)…
專案面板 (Project)
18 Wu, ShyiShiou Dept. of E.E., NKUT
Assets/Create選單命令
shap
e th
e fu
ture
場景指的就是遊戲畫面,可以在這個場景視窗中擺設遊戲物件
場景面板 (Scene) 1/3
19 Wu, ShyiShiou Dept. of E.E., NKUT
圖示顯示選單2D/3D切換
場景燈光開關 天空背景關闗
音效開關
透視視圖
軸向控制器
物件繪圖選單
以名稱搜尋場景中的物件
shap
e th
e fu
ture
點擊軸向控制器 (Scene Gizmo) 可快速切換到不同軸的視角。點擊中心的立方體,可切換Perspective View (透視視圖) 或Isometric View (等距視圖)
場景面板 (Scene) 2/3
20 Wu, ShyiShiou Dept. of E.E., NKUT
等距視圖
shap
e th
e fu
ture
旋轉場景:Alt+滑鼠左鍵
拉近/拉遠場景:滑鼠滾輪或Alt+滑鼠右鍵
將物件顯示於視窗中央:
A. 在Hierarchy面板,雙擊物件
B. 在場景中點選物件後,按F鍵
第⼀人稱瀏覽(旋轉)場景:滑鼠右鍵
點選攝影機,會以子視窗顯示該攝影機視角所看到的畫面
場景面板 (Scene) 3/3
21 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
透過設定的Camera (相機)視角所看到的場景,模擬遊戲的執行畫面
遊戲面板 (Game) 1/2
22 Wu, ShyiShiou Dept. of E.E., NKUT
螢幕比例選單攝影機畫面選單 執行時最大化
shap
e th
e fu
ture
顯示遊戲的執行效能數據,包括音訊、顯卡、網路資訊
遊戲面板 (Game) 2/2
23 Wu, ShyiShiou Dept. of E.E., NKUT
開啟遊戲執行資訊
shap
e th
e fu
ture
檢視目前選取物件之所有可設定的屬性,包括遊戲物件屬性 (例如物件名稱、位置座標、圖層…等);以及附加在物件上的元件 (例如燈光、攝影機、碰撞器、程式腳本…等) 屬性
屬性面板 (Inspector)
24 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
File選單
A. 場景的新增、開啟與儲存
Unity不會自動儲存修改過的場景
B. 專案的新增、開啟與儲存
C. 專案的建置設定與建置並執行
D. 關閉Unity
系統選單 1/7
25 Wu, ShyiShiou Dept. of E.E., NKUT
A
B
C
D
shap
e th
e fu
ture
Edit選單
A. 場景的基本操作,例如剪下、貼上、複製與刪除等
B. Unity環境設定
C. 專案的執行、暫停與單步執行
D. 登入與登出
E. 將目前選擇的物件儲存,以便從儲存的物件清單中快速選擇物件
F. 專案環境設定
G. 網路模擬功能與圖像模擬功能
H. 最小單位設定
系統選單 2/7
26 Wu, ShyiShiou Dept. of E.E., NKUT
A
B
C
D
EF
G
H
shap
e th
e fu
ture
Assets選單
A. 專案素材的創建、開啟及刪除等
B. 開啟已選取的Scene,可用於比較場景相近的Scene
C. 專案素材套件管理
D. 更新當前專案至最新的Unity專案版本
E. 以預設編輯器開啟專案腳本程式
系統選單 3/7
27 Wu, ShyiShiou Dept. of E.E., NKUT
A
B
C
DE
shap
e th
e fu
ture
GameObject選單
A. 遊戲物件的創建
B. 物件的從屬關係設定及預製物件的操作
C. 將選取物件與攝影機對齊
系統選單 4/7
28 Wu, ShyiShiou Dept. of E.E., NKUT
A
B
C
shap
e th
e fu
ture
Component選單
A. 在屬性面板開啟新增元件作業選單
B. 可創建的元件選單
系統選單 5/7
29 Wu, ShyiShiou Dept. of E.E., NKUT
A
B
shap
e th
e fu
ture
Window選單
A. 作業面板切換
B. 變更面板排列方式
C. 呼叫出指定的面板
系統選單 6/7
30 Wu, ShyiShiou Dept. of E.E., NKUT
A
B
C
shap
e th
e fu
ture
Help選單
A. 關於Unity的版本、授權等資訊
B. Unity授權的管理
C. 使用手冊及API參考手冊
D. Unity官方論壇
E. 檢查更新及下載測試版
F. 版本說明及錯誤回報
系統選單 7/7
31 Wu, ShyiShiou Dept. of E.E., NKUT
AB
C
D
E
F
shap
e th
e fu
ture
Unity提供多種預設的版面配置讓使用者自由選擇,也可以儲存當前自訂義的版面配置方式
自訂版面配置
32 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
選單命令File> New Project…
建立專案 1/2
33 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
指定專案名稱、儲存位置,以及遊戲類型 (2D或3D)
Add Asset Package:設定要附加到專案的套件。可以在專案開發過程中,需要時再匯入
建立專案 2/2
34 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
場景 (Scene) 就是遊戲的⼀個關卡
玩家看到的遊戲畫面通常只是場景的某⼀部份
建立專案時會自動產⽣⼀個預設場景
編輯過程中記得透過快捷鍵Ctrl-S儲存場景,副檔名.unity
新增場景
選單命令File> New Scene
場景
35 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
在遊戲裡登場的所有東⻄
玩家、敵人、道具、背景模型、光源、聲音、攝影機、分數…
元件
用來附加到遊戲物件上,以賦予遊戲物件特定功能,例如碰撞、重力、運動…
遊戲物件
36 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
攝影機決定場景從哪裡、哪個角度觀察
場景預設會自動加入⼀個攝影機物件Main Camera及方向光
Clear Flags螢幕空白部份處理方式
Skybox 螢幕空白部份顯示天空盒
Solid box 螢幕空白部份顯示攝影機底色 (Background設定值)
Depth Only 深度相機,只渲染採集到的畫面
Don't Clear 不清除顏色或深度緩衝區,疊加每幀渲染畫面
Culling Mask剔除遮罩,只渲染勾選的圖層
Background背景顏色
攝影機設定 1/5
37 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
Projection投影方式
Orthographic 正交投影,物體沒有前後距離分別
Perspective 透視投影,物體有前後距離之分別
攝影機設定 2/5
38 Wu, ShyiShiou Dept. of E.E., NKUT
Perspective
Orthographic
shap
e th
e fu
ture
Field of View透視投影模式時,攝影機的視野角度,預設為60
Size正交投影模式時,攝影機的視野寬度,預設為5
Clipping Planes裁切平面 (攝影機渲染區間)
Near 可視區域的起點 (與攝影機距離)
Far 可視區域的終點 (與攝影機距離)
Viewport Rect攝影機畫面顯示在螢幕的區域;螢幕左下角為原點,最上方Y=1,最右方X=1。預設攝影機畫面充滿整個螢幕
X、Y 決定顯示區域起點,預設值為0
W、H 決定顯示區域寬度及高度,預設值為1
攝影機設定 3/5
39 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
Depth攝影機的渲染優先級別,數值越⼤優先級別越高。優先級別高的攝影機畫面會覆蓋在級別低的攝影機畫面上;Main Camera之Depth預設值為-1
Rendering Path渲染路徑,指定攝影機渲染方式
Use Graphics Settings 套用Project Settings下的Graphics設定
Forward 每個材質⼀個通道的方式來渲染
Deferred 先對所有物件進行⼀次無光照渲染,再進行光照渲染
Legacy Vertex Lt 舊版的頂點光照。將所有的遊戲物件作為頂點光照物件來渲染
Legacy Deferred 舊版的延遲光照
攝影機設定 4/5
40 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
Target Texture指定目標紋理。將攝影機畫面輸出到⼀張Render Texture而非螢幕,可應用製作遊戲場景縮圖或畫面特效
Occlusion Culling是否剔除物體背向攝影機的部份
Allow HDR高動態光照渲染
Allow MSAA多重採樣抗鋸齒渲染 (multisample antialiasing)
攝影機設定 5/5
41 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
Main Camera
Position (X, Y, Z) = (0, 0, -5)
選單命令GameObject> 3D Object> Sphere
Position (X, Y, Z) = (0, 0, 0)
選單命令GameObject> Camera
Position (X, Y, Z) = (0, 0, -30)
Clear Flags = Solid Color
Projection = Orthographic
Size = 3
Viewport Rect
(X, Y) = (0.8, 0.8)
(W, H) = (0.2, 0.2)
攝影機測試
42 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
Edit選單Preferences…命令
建議使用內建的MonoDevelop編輯器
腳本編輯器
43 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
場景必須加入Scenes In Build清單中
選單命令File> Building Settings
using UnityEngine.SceneManagement;public class Level1 : MonoBehaviour {
void Update () {if (Input.GetMouseButtonDown(0)) SceneManager.LoadScene(“Scene2");
}}
場景切換
44 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
建立新專案
選單命令File> Save Scenes,將預設場景儲存為main
選單命令GameObject> 3D Object> Cube
做為分辨場景用
選單命令GameObject> CreateEmpty
更名為GameController
加入程式腳本
場景切換測試 1/5
45 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
編輯Main.csusing System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.SceneManagement;public class Main : MonoBehaviour {
// Use this for initializationvoid Start () {
}
// Update is called once per framevoid Update () {
if (Input.GetMouseButtonDown(0)) SceneManager.LoadScene("level one");}
}
場景切換測試 2/5
46 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
選單命令File> New Scene,新增關卡1場景
選單命令File> Save Scenes,將場景儲存為level one
選單命令GameObject>3D Object> Sphere
做為分辨場景用
選單命令GameObject> CreateEmpty
更名為GameController
加入程式腳本
場景切換測試 3/5
47 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
編輯Level_one.csusing System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.SceneManagement;public class Level_one : MonoBehaviour {
// Use this for initializationvoid Start () {
}
// Update is called once per framevoid Update () {
if (Input.GetMouseButtonDown(0)) SceneManager.LoadScene("main");}
}
儲存場景level one.unity
場景切換測試 4/5
48 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
選單命令File> Building Settings,將main及level one場景加入Scenes In Build清單中
執行測試
點擊滑鼠左鍵可切換場景
場景切換測試 5/5
49 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
以下程式按Esc鍵時結束遊戲程式
if (Input.GetKey (KeyCode.Escape)) {Application.Quit ();
}
註:需建立執行檔測試
結束應用程式
50 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
Unity Asset Store有非常豐富的套件,其中不乏免費資源。由Asset Store面板搜尋想要的Unity範例,例如Survival Shooter
下載官方資源 1/5
51 Wu, ShyiShiou Dept. of E.E., NKUT套件的價格會不定期調整
shap
e th
e fu
ture
點擊Download
下載官方資源 2/5
52 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
登錄Unity帳號
下載官方資源 3/5
53 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
等待下載並解壓
已下載過的套件會儲存在c:\Users\用戶名稱\AppData\Roaming\Unity\Asset Store-5.x目錄下
下載官方資源 4/5
54 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
選取要滙入要專案的資源,再點擊Import按鈕
下載官方資源 5/5
55 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
了解遊戲引擎事件程序的執行流程,才能正確安排程式腳本,調校遊戲效能
https://docs.unity3d.com/Manual/ExecutionOrder.html
事件函式執行流程 1/3
56 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
事件函式執行流程 2/3
57 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
事件函式執行流程 3/3
58 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
專案內容可以封裝成Unitypackage檔,來備份專案的進度或移植到其它電腦上使用
Assets選單Export Package…命令
匯出package
59 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
Files選單Build Settings命令
設定遊戲場景
選擇遊戲平台
點擊Build按鈕
建立執行檔
60 Wu, ShyiShiou Dept. of E.E., NKUT
shap
e th
e fu
ture
https://docs.unity3d.com/Manual/index.html
線上手冊
61 Wu, ShyiShiou Dept. of E.E., NKUT
top related