分類:Unity、C#、VS2015 瀏覽器
建立日期:2016-03-29 工具
前面咱們說過,Unity中的Project View(稱爲工程瀏覽器)至關於VS2015中的解決方案資源管理器(Solution),Unity的每一個工程中可包含多個關卡(*.unity),每一個關卡都是一個可獨立運行的項目,根據發佈的目標平臺不一樣,編譯後生成的可執行程序的擴展名也不一樣,例如對於Windows平臺生成的可執行程序是(.exe文件),對於在Windows平臺下運行的瀏覽器(Web)生成的是動態連接庫(.dll文件),對於Android平臺生成的是(.apk文件)。而VS2015是一個解決方案資源管理器(Solution)下可包含多個項目(Project),在Windows平臺上,每一個項目根據建立的模板不一樣,編譯後生成的文件也不一樣,或者說,生成的多是一個可獨立執行的程序(.exe文件),也可能生成的是一個可被其餘程序調用的動態連接庫(.dll文件)。 學習
總之,雖然英文都叫Project,但含義不一樣。爲了容易區分,在中文翻譯中通常將Unity的Project稱爲工程,將VS2015中Solution下的Project稱爲項目。 優化
Unity中Project下的各類資源和腳本都是經過文件夾來分類的,因此叫工程瀏覽器。這些文件夾下的資源和源程序至關於VS2015解決方案資源管理器(Solution)中每一個項目(英文也是Project)下的各類資源和源程序,區別是VS2015是先經過項目類別來區分,而後再經過項目下的文件夾和命名空間來分類,而不是僅經過文件夾來分類。 動畫
可這樣來理解Unity和VS2015二者之間的概念: 翻譯
Unity VS2015 3d
名稱 Poject(工程) 解決方案資源管理器(.sln) orm
項目 Poject下的文件夾 解決方案資源管理器中項目下的文件夾 對象
用途 管理各類資源和腳本 管理各類資源和源程序 blog
文件管理 關卡文件(*.unity) 項目文件(.csproj)
資源 Assets Resources
邏輯控制 腳本(.cs文件) 源程序(.cs文件)
理解這些含義的最好辦法就是打開安裝Unity時自帶的示例工程,而後觀察對應視圖以及視圖下的文件夾和文件。
下圖是打開安裝Unity時自帶的示例工程後的Project視圖:
Project視圖以ListView的形式顯示工程的結構。點擊列表中的文件夾後,內容就當即顯示在右側視圖中。其中單個資源顯示爲圖標,並標明其類型(腳本、材質、子文件夾等)。移動視圖下方的滑塊可調整圖標大小。若是滑塊移至最左側,會被ListView的另外一種視圖形式替代。
表示工程結構的ListView的上方是收藏夾 (Favorites) 部分,用於保存常用的項,以方便之後訪問。
可將工程結構列表中的項直接拖動至收藏夾 (Favorites)來收藏它。
Project下方的下拉框用於建立各類資源,其功能與主菜單Assets下的Create子菜單的功能相同,用於給現有文件夾添加新資源和子文件夾。
窗口 (Window) 菜單中有一個選項,可供轉換至工程視圖單列版,單列視圖基本上只有層級結構列表,無圖標視圖。菜單旁的鎖定圖標可「凍結 (freeze)」 視圖中的當前內容(如防止被其餘地方的事件更改),其用法與檢視器 (Inspector) 鎖定的用法相似。
一、經常使用的快捷方式
當工程瀏覽器視圖有焦點時,快捷方式可用。下面是經常使用的快捷方式:
Ctrl+A 選擇列表中的全部可見項目
Delete 彈出對話框後刪除
Shift+Delete 不彈出對話框而直接刪除
Enter 打開所選資源
二、場景 (Scenes)
通常在Assets文件夾下的Scenes子文件夾下包含不一樣的場景文件(*.unity),這些文件包含了各類遊戲對象,可利用它建立主菜單、獨立關卡等等。
Unity將每一個惟一的場景 (Scene) 文件都視做一個關卡。在每一個場景 (Scene) 中,可放入環境、障礙和裝飾物等。
建立場景:File-->New Scene
保存場景:File-->Save Scene
三、實例化預設 (Prefabs)
通常用Prefabs文件夾保存各類預設文件。
建立一個預設 (Prefab) 後,便可輕鬆、快速建立該預設 (Prefab) 的副本,每一個副本都稱爲一個實例 (Instance)。
要建立預設的副本,可從工程視圖 (Project) 中將預設文件夾下的預設直接拖放到層次視圖 (Hierarchy) 或場景視圖 (Scene) 中。
有了預設 (Prefab) 的實例之後,就可隨意放置和調整它。
四、添加組件 (Component) 和腳本 (Scripts)
一旦有了一個預設 (Prefab) 或高亮的遊戲對象 (GameObject) ,就可使用組件 (Components) 爲其添加其餘功能。
要添加一個組件,只須要從遊戲對象 (GameObject) 中的組件 (Component) 菜單中選擇一個組件 (Component)。以後,就會看到組件 (Component) 出如今遊戲對象的檢視器 (Inspector) 中。
腳本 (Scripts) 也是一種組件。
若是添加的組件切斷了遊戲對象 (GameObject) 與預設 (Prefab) 的聯繫,可以使用菜單中的遊戲對象 (GameObject)->將變動應用至預設 (Apply Changes to Prefab) 從新創建鏈接。
五、放置遊戲對象 (GameObject)
當將一個遊戲對象 (GameObject) 放入場景後,就可使用快捷工具欄的【轉換工具】 (Transform Tools) 將其放在任意位置。
此外,可利用檢視器 (Inspector) 中轉換 (Transform)選項卡下的值來微調遊戲對象的位置和旋轉角度。
六、使用相機 (Cameras)
相機 (Cameras) 是遊戲的眼睛。玩家玩遊戲時看到的全部內容都是經過一臺或多臺相機(Camera對象)來展現的。
可像任何其餘遊戲對象 (GameObject) 同樣放置、旋轉和父子化相機。因爲相機是一個帶相機組件 (Camera Component) 的遊戲對象(GameObject)。所以,它除了具備常規遊戲對象 (GameObject) 的功能之外,還有一些相機特定的功能。
腳本 (Scripts) 資源包中安裝了一些有用的相機 (Camera) 腳本。建立新工程時可同時安裝腳本 (Scripts) 資源包,或經過選擇菜單的Assets-> Import Package來實現。
導入的腳本可在菜單中的Components-> Camera-Control 中找到。
七、光源 (Lights)
除了一些極少數狀況,通常都須要在場景中添加光源 (Lights)。
雙擊Scenes下的Car,可觀察已經添加的光源:
光源類型共有三種,每種各有不一樣。最重要的是它們爲遊戲增添氣氛和感受。不一樣光源可徹底改變遊戲的情境,有效使用光源將是一個重要的學習課題。
本章後面還會用專門的一節來介紹它。
Project下的Assets文件夾用於保存和組織Unity工程中的各類資源。
一、資源工做流程
這裏介紹的在Unity中使用單個資源的步驟都是通用的步驟,只是概述了基本操做。例如,三維 (3D) 網格的使用。
二、建立粗糙資源
你可使用任何支持的三維 (3D) 的建模軟件建立一個粗糙的資源。例如採用3Dmax、Maya等。後面的章節中還會單獨介紹可導入哪些建模模型。
三、建立和更新資源
若是您正在建立遊戲並須要添加任意類型的新資源,您只需建立此資源並將其保存在資源 (Assets) 文件夾下。當您返回或啓動 Unity 時,添加的文件就會被自動檢測到並自動導入到Unity工程中。
另外,當你在本機上經過3Dmax、Maya等軟件中更新和保存資源時,Unity還能夠自動檢測到所作的更改並從新導入更改後的資源。這可讓你集中精力優化資源,而沒必要擔憂資源與Unity之間的不一致問題。
(1)默認值
在某些導入程序上,您能夠爲字段引用或類似事務指定默認值。要指定默認值,請在須要設置默認值的字段上打開對象選擇器 (object selector),而後在對象選擇器上選擇一個值。
(2)資源類型
這裏有一些基本的資源類型可供你建立遊戲。包括:
不管使用哪一種三維資源包,Unity都會從每一個文件中導入網格和動畫。
僅爲了使用網格(Mesh)文件時不須要導入動畫。若是使用動畫,能夠選擇從單個文件導入全部動畫或逐個導入包含每一個動畫的文件。
將網格(Mesh)導入到Unity後,就能夠將其拖至場景(Scene)或層級視圖(Hierarchy)來建立網格的實例。也能夠將組件(Components)添加至實例,而不會做爲附件添加至網格文件自己。
Unity將使用UV(即:二維紋理貼圖)和大量默認材質 (Materials)(每一個UV對應一種材質)來導入網格(Mesh)。這樣你就能夠將對應的紋理文件分配到材質,而後在Unity遊戲引擎上填充網格的外觀。
Unity支持全部圖像格式。即便是分層的Photoshop文件也同樣能夠導入,並且不會損壞Photoshop的原始格式。這可以讓你輕鬆無憂地處理單個紋理文件,獲取精簡流暢的體驗。
注意:使用的紋理尺寸應該是2的升冪(如32x3二、64x6四、128x12八、256x256 等),不然可能會致使加載、處理都變慢以及可能會出現馬賽克等負面效果。
要導入紋理,只需將紋理放入工程的資源(Assets)文件夾下,此時紋理就會自動顯示在工程視圖(Project View)中。
另外,你須要將紋理分配到材質中,而後纔可將材質運用到網格(Mesh)、粒子系統 (Particle System) 或 GUI 紋理 (GUI Texture)。
使用導入設置 (Import Settings) 也可將紋理轉換爲遊戲中不一樣應用類型的立方體貼圖 (Cubemap) 或法線貼圖 (Normalmap)。
四、導入資源
初次保存資源時,應將其按常規保存在Project下的資源(Assets)文件夾下。這樣作的好處是打開Unity工程後,Unity就會檢測到該資源並自動將其導入到工程中。
注意,Unity使用所用建模軟件(如3Dmax、Maya等)提供的FBX導出功能將模型轉成FBX文件格式,所以要求這些軟件要有FBX導出包,以供Unity自動調用。
也能夠在應用程序中直接導出爲FBX並保存到工程(Project)文件夾下。
將文件添加至工程文件夾的資源 (Assets) 文件夾後,Unity會自動檢測到這些文件。將任何資源 (Assets) 放入資源文件夾後,資源 (Assets) 也都會自動顯示在工程視圖 (Project View) 中。
整理工程視圖 (Project View) 時,請務必記住如下很是重要的事項:
切勿在Unity的管理以外移動任何資源或整理此文件夾。必須始終使用工程視圖 ( Project View) 進行上述操做!
這是由於Unity 中存儲了大量資源文件之間的關係元數據。這些數據用於Unity可在何處找到這些資源。若是你在工程視圖 (Project View) 內移動資源,這些關係都會保留。若是在 Unity 外移動資源,則將破壞這些關係。
另外,若是在工程視圖 (Project View) 中選擇資源,該資源的導入設置會自動出如今檢視器 (Inspector) 中。顯示的選項將根據所選資源的類型自動更改。
(1)在場景中添加資源
只需單擊工程視圖 (Project View) 中的網格(Mesh)並拖動至層級視圖 (Hierarchy) 或場景視圖 (Scene View),即可將其添加至場景 (Scene) 中。
將網格(Mesh)拖到場景中時,將建立一個帶網格渲染器 (Mesh Renderer)組件 (Component) 的遊戲對象 (GameObject)。
若是要使用紋理或聲音文件,須要將其添加到場景 (Scene) 或工程 (Project) 中已經存在的遊戲對象 (GameObject)中。
(2)將不一樣資源放到一塊兒
如下簡述了最經常使用資源之間的關係。
可將材質 (Material) 應用於遊戲對象(GameObject),應用後該對象就變成了帶網格渲染器的組件(Mesh Renderer Component)。
可將動畫 (Animation) 應用於遊戲對象 (GameObject),應用後該對象就變成了帶動畫的組件 (Animation Component))
可將聲音文件應用於遊戲對象 (GameObject),應用後該對象就變成了帶聲音源的組件 (Audio Source Component))
預設 (Prefabs) 是可重複用於場景中的遊戲對象 (GameObject) 和組件 (Component) 的集合。
一個預設 (Prefab) 可建立多個相同對象,稱之爲實例化。好比樹,建立一個樹預設 (Prefab) 能夠實例化多棵相同的樹並將其放入場景中。全部樹都與預設 (Prefab) 連接在一塊兒,因此對預設 (Prefab) 所作的任何更改都將自動應用到全部樹的實例當中。若是想更改網格、材質或任何其餘項,只需一次性在預設 (Prefab) 中更改,而後全部其餘樹都會繼承這些更改。也可更改一個實例,而後選擇主菜單上的遊戲對象 (GameObject)->將變動應用至預設 (Apply Changes to Prefab),這可節省許多設置和更新資源的時間。
若是遊戲對象 (GameObject) 包含多個組件 (Component) 和子游戲對象 (GameObject) 層級,可在頂級遊戲對象 (GameObject)(或根 (root))中建立一個預設 (Prefab),再使用整個遊戲對象 (GameObject) 集合。
能夠將預設 (Prefab) 當成遊戲對象 (GameObject) 結構藍圖。全部預設 (Prefab) 克隆體都和藍圖相同。若是藍圖更新,那麼全部克隆體也將更新。更新預設 (Prefab) 自己有多種方式,可經過更改其克隆體之一併將更改應用至藍圖實現。有關預設 (Prefab) 的使用和更新的更多內容,請瀏覽預設 (Prefabs) 頁面。
要從場景的遊戲對象 (GameObject) 中真正建立一個預設 (Prefab),只需將遊戲對象 (GameObject) 從場景拖到工程中,您會看到遊戲對象 (Game Object) 的名稱文字變藍,爲新預設 (Prefab) 任意命名。如今,您已建立可重複使用的預設 (Prefab)。
(3)更新資源
您已經導入、實例化資源並連接至預設 (Prefab)。想要編輯源資源時,只需在工程視圖 (Project View) 中雙擊它。相應的應用程序將會啓動,可隨意進行更改。更新完成後保存。以後,切換回 Unity 時將檢測到該更新,資源會被從新導入。資源到預設 (Prefab) 的連接也將保留。看到的效果就是預設 (Prefab) 將更新。以上即爲更新資源的全部必要信息。打開並保存便可!
(4)給資源添加標籤【可選】
若是想讓全部資源保存有序狀態,給資源添加標籤始終是個好辦法。有了標籤,即可在工程視圖或對象選擇器的搜索欄中搜索每一個資源相關的標籤。
給資源 (Asset) 添加標籤 (Label) 的步驟:
(從工程視圖 (Project View) 中)選擇想要添加標籤的資源 (Asset)。
若是該資源無任何相關聯的標籤 (Labels),則在檢視器中單擊「添加標籤 (Add Label)」。
若是資源有相關聯的標籤,則單擊標籤 (Labels)所在。
開始寫標籤 (Labels)。
注意:
(a)任何資源可帶一個以上標籤。
(b)要分割/建立標籤,只需在寫資源標籤名時按enter鍵。