Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Unity遊戲程式設計(01) Unity簡介

1,618 views

Published on

Updated on September 11, 2017
1. Unity IDE介面與基本操作
2. 攝影機設定
3. 場景管理
3. Asset套件匯入與匯出作業

Published in: Software
  • Be the first to comment

Unity遊戲程式設計(01) Unity簡介

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

×