Unity 快速入門 (一) 簡介

用途

Unity 起初是作為遊戲引擎(Game Engine),可以橫跨多個平台建置遊戲。現今則作為創作引擎(Creation Engine)角色,可用於遊戲、建築、工業、模擬、動畫、電影等領域的編輯引擎,支援極多樣化的輸出平台: Windows、MacOS、Linux桌面平台,iOS、Android、Windows Store、AR、VR、WebGL、Facebook Gameroom….等,基本上大多數的遊戲平台皆可使用Unity開發,部分特殊平台如各式家用主機等等需要則額外處理才可用。

下圖為Unity官方的建制目標總覽。

gdc-keynote-blog-section-headers-03

概觀

用最簡單的一句話來描述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官網)

Unity Mobile Market top 1000 free 34%

UnityMarket

價格

主要有三大類型,可以參考官網

Personal:免費使用,包含所有Unity核心功能,限年收或募資金額10萬美金以下使用。

Plus:每月35美金,基於Personal,增加Unity 遊戲開發課程 + Bolt Visual Scripting Tool ($214 美金價值)、Asset Store訂閱者優惠折扣、客製化啟動畫面、效能報表、更好的Unity分析數據、整合的遊戲內付費功能等,最重要的為可供20萬美元年收或募資金額以下使用。

Pro:每月125美金,基於Plus,增加官方支援(可觸及原始碼),沒有商業金額限制。

關於更多的細節請參閱官網。

操作介面

啟動Unity後的專案畫面,登入Unity帳號後即可瀏覽自己的專案,這個介面除了開啟新專案、打開專案(選擇專案資料夾)外,還可以進入學習視窗,進入官方的入門教學。

Unity專案畫面

打開專案後,會進入Unity主視窗。

Unity操作介面

Unity的所有操作視窗都可以任意拉動,配置位置。若不小心關掉了,可於上方工作列Window再打開。

常用的幾個視窗:

Hierarchy:顯示場景(可同時開啟多個場景)與其中的遊戲物件,所有一開始就出現在場景中的遊戲物件都可以在這裡找到,點選物件後可於Scene或Inspector視窗中調整物件的數值(調整位置與角度很方便)。另外也可以直接在這裡點選右鍵建立一些基本物件。也可以將script直接拉到物件上。

Scene:可以看見場景中的各項物件,進行拖拉、旋轉、縮放等,用滑鼠操作的預設調整畫面技巧

  1. 滾輪:拉近拉遠畫面
  2. 滑鼠中鍵:拖曳視角
  3. 滑鼠右鍵:旋轉視角

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 ?還沒用過
  • 地形與種樹 ☆ – ☆☆

發表留言