用途
Unity 起初是作為遊戲引擎(Game Engine),可以橫跨多個平台建置遊戲。現今則作為創作引擎(Creation Engine)角色,可用於遊戲、建築、工業、模擬、動畫、電影等領域的編輯引擎,支援極多樣化的輸出平台: Windows、MacOS、Linux桌面平台,iOS、Android、Windows Store、AR、VR、WebGL、Facebook Gameroom….等,基本上大多數的遊戲平台皆可使用Unity開發,部分特殊平台如各式家用主機等等需要則額外處理才可用。
下圖為Unity官方的建制目標總覽。
概觀
用最簡單的一句話來描述Unity是什麼的話,可以用如下敘述:
用來控制與呈現,場景中各式物件間互動行為與感官特效的跨平台運行環境。
Unity是一個運行環境,Unity Editor則是基於這個環境的編輯器,用來定義物件本身的行為與和其他物件互動的行為,通常說Unity的各項功能都是指Unity Editor的功能,因為我們會使用Editor來控制Unity呈現的內容。
Unity本身對於初級素材創作(如3D建模、繪圖、編曲等)比較不在行,動畫製作雖然可於Unity中作成,但使用其他的專業引擎會具有更好的效率與功能。Unity 2018會整合ProBuilder到Editor當中,讓簡單建模也可以很方便的在Unity中完成,相關資訊可以看官方Blog,目前已可於Asset Store中免費使用。
Unity支援多種形態的素材,將素材導入Unity後進行組合。Unity官方的Asset Store更是一個集合各種素材的自由販賣平台,可以購買其他人上架的素材包(也有包含程式庫),與進行販賣。
Unity內建有許多功能,會在"功能分類"段落列舉,而Unity最主要的工作是建立場景與其中的遊戲物件設置。
Unity中所有的遊戲物件(GameObject)都必須擺放在場景當中,而編輯器可以一次開啟多個場景,並可以進行合併,在場景中的物件都有其Transform資料(主要包含3維位置、角度、縮放量),並可進行樹狀組合堆疊(一個物件下可以再包含數個子物件,當物件被操控時,底下的子物件也會被操控,並且子物件的座標系統以物件作為原點)。物件上可以裝置多個元件(Component),Component通常是內建的元件或是玩家自定義的腳本程式(Script),用來讓遊戲物件根據設定的程式執行對應的行為。
現況
以下列使用Unity引擎製作的特別知名遊戲:
神魔之塔 (2013)
爐石戰記:魔獸英雄傳 (2014)
紀念碑谷 Monument Vally (2014)
王者榮耀 (2015)
精靈寶可夢GO (2016)
等等,其中手機遊戲市場又以Unity開發的遊戲佔據了很大一塊,在最頂尖的1000個免費遊戲中有34%的數量使用Unity製作 (可視為各家免費手機遊戲競爭的頂點)。而在其下的整體數量又更加龐大,在其他平台的數量也相當可觀,VR領域更是有最大的市佔率。
Unity最大的優勢在於上手快,基本功能健全,對於遊戲初學者、獨立開發者或小型工作室來說非常好用,若要加大規模也有足夠的擴展性,雖然無法直接修改核心的程式碼,但在大部分的狀況下都可以用其他手段處理,除非在效能或是效果上有很高的要求,否則已完全足夠使用。
(下圖來自Unity官網)
價格
主要有三大類型,可以參考官網。
Personal:免費使用,包含所有Unity核心功能,限年收或募資金額10萬美金以下使用。
Plus:每月35美金,基於Personal,增加Unity 遊戲開發課程 + Bolt Visual Scripting Tool ($214 美金價值)、Asset Store訂閱者優惠折扣、客製化啟動畫面、效能報表、更好的Unity分析數據、整合的遊戲內付費功能等,最重要的為可供20萬美元年收或募資金額以下使用。
Pro:每月125美金,基於Plus,增加官方支援(可觸及原始碼),沒有商業金額限制。
關於更多的細節請參閱官網。
操作介面
啟動Unity後的專案畫面,登入Unity帳號後即可瀏覽自己的專案,這個介面除了開啟新專案、打開專案(選擇專案資料夾)外,還可以進入學習視窗,進入官方的入門教學。
打開專案後,會進入Unity主視窗。
Unity的所有操作視窗都可以任意拉動,配置位置。若不小心關掉了,可於上方工作列Window再打開。
常用的幾個視窗:
Hierarchy:顯示場景(可同時開啟多個場景)與其中的遊戲物件,所有一開始就出現在場景中的遊戲物件都可以在這裡找到,點選物件後可於Scene或Inspector視窗中調整物件的數值(調整位置與角度很方便)。另外也可以直接在這裡點選右鍵建立一些基本物件。也可以將script直接拉到物件上。
Scene:可以看見場景中的各項物件,進行拖拉、旋轉、縮放等,用滑鼠操作的預設調整畫面技巧
- 滾輪:拉近拉遠畫面
- 滑鼠中鍵:拖曳視角
- 滑鼠右鍵:旋轉視角
Inspector:顯示各項數值設定,點選Add Component可以直接在選擇的物件上附加新元件。經常會需要拖曳東西到元件上(script是一種元件),來給予物件初始值(或是可以視作綁定物件間的關係,建立溝通橋梁)。
Game:在Editor中快速執行遊戲的畫面,可以按Maximize On Play執行時放大,也可以按下Stats觀察效能,特別注意有時候在Editor當中執行的結果會和建置出來的不一樣(除了畫面、有時候某些功能可能會不支援),測試遊戲一定要實際建置實行看看。你可以在執行的時候控制其他視窗與改變數值。
Project:顯示整個Project內容的目錄瀏覽器,和檔案總管有點像,底下通常會有多個資料夾,某些檔案須要放在特定資料夾下才可以使用,會在之後的章節介紹。可以直接在其中建立資料夾與腳本,打開腳本的預設IDE/Editor為Visual Studio,可於Edit/Preferences設定自訂的工具。點兩下檔案可以更名(右鍵沒有這項功能,注意繼承Monobehavior的script要拖到物件上,檔名需要與類別名相同)。
Console:Editor的Log視窗,可以看錯誤與警告,或是用Script中的Debug下的多種method印出訊息,只有在Editor中很方便查看,若需要在實際建置中查看可能另外建立一個UI會比較方便。只有在沒有紅色錯誤訊息的狀況下才可以建置或是執行。
主要功能分類
深度:☆ – ☆☆☆☆☆ (1~5)
- Unity Editor控制 ☆ – ☆☆☆☆☆
- 包含自訂Unity Editor功能
- 資源管理 ☆ – ☆☆☆
- 場景與物件控制 ☆ – ☆☆
- UI ☆ – ☆☆☆☆
- 燈光 ☆ – ☆☆☆
- 攝影機與渲染 ☆ – ☆☆☆☆
- 音效 ☆ – ☆☆
- 粒子系統 ☆☆ – ☆☆☆☆
- 碰撞與物理 ☆☆ – ☆☆☆☆
- 導航系統 ☆☆
- 腳本系統 ☆ – ☆☆☆☆☆
- 外掛插件 ☆☆ – ☆☆☆☆☆
- Shader ☆☆☆ – ☆☆☆☆☆
- 內建多人連線系統 ☆☆☆ – ☆☆☆☆
- TileMap ?還沒用過
- 地形與種樹 ☆ – ☆☆