Unity3D經(jīng)典入門教程(精)_第1頁
Unity3D經(jīng)典入門教程(精)_第2頁
Unity3D經(jīng)典入門教程(精)_第3頁
Unity3D經(jīng)典入門教程(精)_第4頁
Unity3D經(jīng)典入門教程(精)_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、一、Unity基礎(chǔ)本部分是你開始Unity的關(guān)鍵。、這里將解釋Unity的界面,菜單項(xiàng),使用資源,創(chuàng)建場景,和發(fā)布。當(dāng)你完全閱讀了該部分后,你將能夠理解Unity是如何工作的,以及如何使其更加有效的工作,和如何將簡單的游戲放置在一起。 1. 界面學(xué)習(xí) 現(xiàn)在我們開始學(xué)習(xí)Unity,如果你還沒有打開 Unity,你可以通過雙擊位于 Application->Unity文件夾中的 Unity圖標(biāo)來運(yùn)行它,當(dāng)它第一次運(yùn)行時(shí)你將看到如下的場景: Unity運(yùn)行時(shí)的缺省場景,如果你打開過任何實(shí)例,你的屏幕會與上圖不同有很多需要學(xué)習(xí)的東西,讓我們花費(fèi)點(diǎn)時(shí)間來觀察理解上述界面。我們將介紹每一個(gè)接口元素。

2、概要主窗口的每一個(gè)部分都被稱為視圖(View)。在 Unity中有多種類型的視圖,但是,你不需要同時(shí)看見所有的視圖。不同的布局模式 (Layout modes) 包含的視圖是不同的。 通過單擊布局下拉控件來選擇不同的布局, 該控件位于窗口的右上角。布局模式選擇下拉列表現(xiàn)在,單擊布局選擇,并單擊 Animation,切換到動畫布局 (Animation layout)。還可以從菜單中選擇 Window->Layouts->Animation來切換。動畫布局包含所有的視圖,這是昀好的用來介紹它們的方法。通過視圖左上角的名稱你可以迅速的分辨這些視圖。這些視圖是:場景視圖(Scene Vi

3、ew)-用于放置物體游戲視圖(Game View)-表示游戲在運(yùn)行時(shí)的外觀層次視圖(Hierarchy)-當(dāng)前場景中的游戲物體的列表工程視圖(Project)-顯示當(dāng)前打開工程中所有可用的物體和資源檢視視圖(Instpector)-顯示當(dāng)前選中物體的細(xì)節(jié)和屬性時(shí)間線(Timeline)-用于為當(dāng)前選中物體創(chuàng)建基本的時(shí)間線動畫場景視圖(Scene View) 場景視圖場景視圖(Scene View)是一個(gè)可交互的沙盤。你將使用它來選擇并在場景中定位所有的游戲物體(GameObjects),包括玩家,攝像機(jī),敵人等。在場景視圖中操縱并修改物體是 Unity非常重要的功能。這是昀好的通過設(shè)計(jì)者而不是

4、玩家的角度來查看場景的方法。在場景視圖中你可以隨意移動并操縱物體,但是你應(yīng)該知道一些基本的命令以便有效的使用場景視圖。第一個(gè)你應(yīng)該知道命令是Frame Selected命令。 這個(gè)命令將居中顯示你當(dāng)前選中的物體。 你可以在層次視圖(Hierarchy)單擊任何物體,然后移動你的鼠標(biāo)到場景視圖上并按F鍵。 場景視圖將移動以居中顯示當(dāng)前選擇的物體。這個(gè)命令是非常有用的,你將在場景編輯的時(shí)候經(jīng)常使用它。在場景視圖中操作在場景視圖的上方有一個(gè)包含布局模式選擇的工具欄工具欄盡管現(xiàn)在的工具欄沒有附著在場景視圖窗口上,但是位于左側(cè)的四個(gè)按鈕可用來在場景視圖中導(dǎo)航并操縱物體,中間的兩個(gè)用來控制選中的物體軸心如

5、何顯示。左邊的第一個(gè) View Tool將在以后說明。后面的工具為操縱工具 (Manipulation Tools),中間的兩個(gè)為手柄位置工具 (Handle Position Tool) 選中任何操縱工具可允許你交互時(shí)的移動,旋轉(zhuǎn)或縮放物體。當(dāng)你已經(jīng)選擇了一個(gè)工具時(shí)你可以在場景視圖中單擊任何一個(gè)物體選中它,現(xiàn)在按下 F鍵使得該物體居中顯示。如下不同的操縱工具平移工具熱鍵 W 旋轉(zhuǎn)工具熱鍵 E 縮放工具熱鍵 R 當(dāng)選中一個(gè)物體時(shí)你將看到 Gizmo坐標(biāo),每個(gè)工具有不同的 Gizmo坐標(biāo)形式平移旋轉(zhuǎn)縮放點(diǎn)擊并拖動當(dāng)前 Gizmo坐標(biāo)的任何一個(gè)坐標(biāo)軸以便平移,旋轉(zhuǎn)或縮放當(dāng)前選中物體的變換 (Tra

6、nsform)組件。你也可以通過單擊并拖動 Gizmo坐標(biāo)的中心來在多個(gè)軸上操縱物體。如果你有一個(gè)三鍵的鼠標(biāo),你可以通過單擊中鍵來調(diào)整昀后調(diào)整的軸而不用直接點(diǎn)擊它。參考變換組件(Transform Component)部分獲取更多內(nèi)容。手柄位置工具 (HandlePositionTool) 用來控制物體或一組選中的物體的軸心如何和在哪里顯示。手柄位置工具選擇中心(Center)意味著使用當(dāng)前所選所有物體的共同軸心,選擇軸心 (Pivot)意味著將使用各個(gè)物體的實(shí)際軸心手柄位置設(shè)置為中心,使用物體的共同軸心手柄位置設(shè)置為軸心,使用實(shí)際的物體軸心在場景視圖中導(dǎo)航根據(jù)使用的鼠標(biāo)的不同,有很多不同的方

7、式可以在場景視圖中導(dǎo)航。使用三鍵鼠標(biāo)按住 Option按鈕并拖動鼠標(biāo)左鍵可以使用旋轉(zhuǎn)模式 (Orbit mode)按住 Option按鈕并拖動鼠標(biāo)中鍵可以使用拖動模式 (Drag mode)按住 Option按鈕并拖動鼠標(biāo)右鍵可以使用縮放模式 (Zoom mode)。也可以使用滾輪來縮放(略)視圖工具模式視圖工具的拖動模式快捷鍵 Q 在拖動模式(Drag Mode)下,在場景視圖中單擊并拖動鼠標(biāo)來上下左右移動視圖。 旋轉(zhuǎn)(Orbit)和縮放(Zoom Modes) 模式也是昀常用的視圖工具。 保持視圖工具選中并按住Option鍵即可進(jìn)入旋轉(zhuǎn)模式。單擊并拖動鼠標(biāo),可以看到視圖是如何旋轉(zhuǎn)的。同時(shí)注

8、意視圖工具 按鈕從手型變成了眼睛。視圖工具的旋轉(zhuǎn)模式 Option鍵昀后,你可以通過按下 Command按鈕進(jìn)入縮放模式。在這種模式下,單擊并拖動鼠標(biāo)將前后縮放你的視圖。注意縮放模式的圖標(biāo)是一個(gè)放大鏡。視圖工具的縮放模式 Command鍵使用視圖工具模式并拖動鼠標(biāo)是基本的場景視圖導(dǎo)航方法。場景視圖控制欄所有的視圖的頂部都有不同的控制欄 (Control Bar),場景視圖控制欄擁有多數(shù)選項(xiàng),并且看起來像下面的樣子:場景視圖控制欄第一個(gè)下拉菜單為視圖選擇器。展開它你可以改變當(dāng)前視圖。所有的視圖都有這個(gè)選擇器,如果你想創(chuàng)建自定義的一個(gè)界面布局,它是非常有用的每個(gè)視圖都有的視圖選擇器下一個(gè)下拉菜單是

9、繪制模式 (Draw Mode)。你可以選擇場景視圖使用紋理模式,線框模式或者紋理線框模式。這個(gè)對你發(fā)布游戲是沒有任何影響的。繪制模式下拉框第三個(gè)下拉菜單為渲染模式(Render Mode)。你可以選擇使用 RGB模式或 Alpha模式。同樣這將不會影響游戲發(fā)布。渲染模式下拉框控制欄中的下一項(xiàng)是一組三鍵。視圖控制欄中的三鍵左邊的開關(guān)控制普通光照。當(dāng)該按鈕被禁用時(shí),你將看到整個(gè)場景中簡單光照。當(dāng)它被啟用時(shí),你將看到你放在場景中的光照物體的影響。啟用該按鈕將允許你在發(fā)布游戲時(shí)看到游戲中的光照。中間的按鈕控制各種不同效果的開關(guān),例如場景視圖網(wǎng)格 (Scene View Grid),天空盒 (Skyb

10、oxes)和 GUI元素(GUI Elements),啟用該按鈕將允許你在發(fā)布看到這些效果右邊的按鈕控制正交模式 (Orthographic Mode)。打開它將移出所有的景深效果。該按鈕不會影響到你發(fā)布游戲。正交模式用來精確定位物體。景深相機(jī)正交相機(jī)。物體不會隨著距離的增大而變小下一個(gè)下拉列表是方向(Direction)下拉列表。它將移動場景視圖到你選擇的方向。昀后一個(gè)下拉列表是層(Layer)下拉列表。你可以使用它來選擇不同層的物體。參考層部分。該選項(xiàng)不會影響游戲發(fā)布。游戲視圖游戲視圖-你的游戲的可見部分游戲視圖(Game View)將使用游戲中設(shè)置的相機(jī)信息來渲染。這個(gè)視圖顯示的是游戲運(yùn)

11、行過程中你將看到的場景。如果你平移或者旋轉(zhuǎn)場景的主相機(jī),你將看到游戲視圖的變化。你需要使用一個(gè)或多個(gè)相機(jī)(Cameras)來控制玩家在游戲中實(shí)際看到的場景。參考相機(jī)組件部分。播放按鈕和狀態(tài)欄這個(gè)按鈕用來在游戲視圖中播放,暫停和步進(jìn)你的游戲。在你構(gòu)建場景的任何時(shí)候,你都可以進(jìn)入播放模式 (Play Mode)并看看你的游戲是如何工作的。播放按鈕和狀態(tài)欄按下播放按鈕 (Play Button)進(jìn)入播放模式。當(dāng)你的場景在播放模式下時(shí),你還可以移動,旋轉(zhuǎn)和刪除物體。你也可以改變變量的設(shè)置。在播放模式下所做的任何改變都是暫時(shí)的,并在你退出播放模式時(shí)重置。你可以再次單擊播放按鈕退出。在播放模式下,你可以停

12、止或步進(jìn)你的游戲。暫停并檢視你的場景是昀好的發(fā)現(xiàn)問題的方法。右側(cè)的狀態(tài)欄有多種不同的作用。它將提供上下文敏感信息和提示,錯(cuò)誤信息和來自與腳本的輸出語句。如果你的游戲有任何問題,查看狀態(tài)欄將是昀好的發(fā)現(xiàn)問題的方法。你可以雙擊狀態(tài)欄打開控制臺窗口,其中將顯示所有的腳本或可見的運(yùn)行時(shí)錯(cuò)誤信息。游戲視圖控制欄控制欄上緊挨著視圖下拉列表的是寬高下拉列表 (Aspect Drop-down)。這里,你可以指定游戲視圖窗口的寬高比為不同的值。這將影響到 GUI元素的位置。使用它來測試你的游戲在不同分辨率下的外觀??刂茩谏详烙疫叺氖?Gizmos按鈕(Gizmos Button)。這將確定是否顯示 Gizmo

13、s坐標(biāo)工程視圖(Project View) 工程視圖-存儲所有資源當(dāng)你創(chuàng)建一個(gè)工程時(shí),將生成一組文件夾。其中之一被稱為資源(Assets)文件夾。在工程視圖(Project View)中可以查看資源文件夾。如果你打開過資源文件夾,你將發(fā)現(xiàn)所有的項(xiàng)都將出現(xiàn)在工程視圖中。不同的是在工程視圖中,你將創(chuàng)建并將物體連接在一起。這些關(guān)系將存儲在工程文件夾的其他位置。從工程視圖中移動資源將維持并更新文件之間的聯(lián)系。從 Finder中移除資源將斷開聯(lián)系。因此,你應(yīng)該只使用 Finder來將文件添加到資源文件夾。任何其他對資源的操作都應(yīng)該在工程視圖中進(jìn)行。導(dǎo)入物體一旦你創(chuàng)建了資源(模型,圖像,聲音或者腳本),你

14、可以使用 Finder將其正確地放置到資源文件夾下。當(dāng)你做這些的時(shí)候 Unity可以處于打開狀態(tài)。一旦你切換到 Unity,新的資源將被檢測到并自動導(dǎo)入。資源就可以在工程視圖中出現(xiàn)。參考資源工作流部分。創(chuàng)建資源在控制欄中使用創(chuàng)建下拉列表 (Create Drop-down)來創(chuàng)建你需要的物體。此外你還可以使用 Control+單擊或右鍵在工程視圖中單擊打開相同的下拉列表。創(chuàng)建下拉列表組織工程視圖使用創(chuàng)建下拉列表在工程視圖中創(chuàng)建文件夾。然后你可以重命名并使用該文件夾就像在 Finder中一樣,并可以在工程視圖中將任何資源拖動到文件夾中。例如你可以創(chuàng)建名為 Scripts的文件夾并將所有的腳本文件

15、放置其中。在你選中的文件上創(chuàng)建文件夾將創(chuàng)建嵌入式的文件夾。使用嵌入式的文件夾可以保持你的工程視圖整潔。注意:如果展開或折疊一個(gè)目錄時(shí)按下了 Alt鍵,所有的子目錄都將展開或折疊。導(dǎo)入設(shè)置在控制欄上有一個(gè)導(dǎo)入設(shè)置按鈕 (Import Settings),位于創(chuàng)建下拉列表的旁邊。根據(jù)所選資源的不同當(dāng)該按鈕被單擊時(shí)將在導(dǎo)入設(shè)置彈出窗口中顯示不同的選項(xiàng)。參考導(dǎo)入資源 (Importing Assets)部分。工程視圖控制欄設(shè)置(Settings)按鈕將為當(dāng)前選擇的資源打開導(dǎo)入設(shè)置。創(chuàng)建下拉列表將會在你選擇的目錄下創(chuàng)建項(xiàng)目,創(chuàng)建文件夾是一種快速有效的組織你的工程視圖的方法。層次(Hierarchy) 層

16、次-當(dāng)前場景中的所有物體層次視圖(Hierarchy)將顯示當(dāng)前打開的 .unity場景文件 (Scene File) 中的所有物體。它用于選擇并成組物體。當(dāng)從場景中添加或刪除一個(gè)物體時(shí),它將在層次中顯示或消失。如果你不能在場景視圖中同時(shí)看到所有物體,你可以使用層次來選擇并檢視它們。物體層次 Unity使用一個(gè)稱為父化(Parenting)的概念。任何物體都可以成為另一個(gè)物體的父或子。一個(gè)子物體可以從它的父物體繼承移動和旋轉(zhuǎn)。Parenting對于組織場景,角色,接口元素或者保持場景整潔有很大的用處。單擊一個(gè)物體并將其拖動到另一個(gè)物體上可以建立父子關(guān)系。你將會看到一個(gè)三角顯示在新的父物體的左邊

17、,現(xiàn)在你可以展開或折疊父以便在層次中查看他的子物體,而不會影響你的游戲。顯示預(yù)設(shè)按鈕 (Show Prefab Button) 當(dāng)位于控制欄 (Control Bar)上的該按鈕被啟用時(shí),任何一個(gè)在層次中選中的預(yù)設(shè)(Prefab)實(shí)例將在工程視圖中顯示它的一個(gè)可視化的參考,如果你在場景中改變預(yù)置實(shí)例的名稱,這是非常有用的。檢視檢視-選中物體的細(xì)節(jié)檢視面板 (Inspector)顯示當(dāng)前選中物體的基本信息,也顯示它所包含的組件(Component)和組件的屬性。它是用來設(shè)置場景中物體屬性的地方。當(dāng)創(chuàng)建一個(gè)好玩的游戲時(shí),你將在檢視面板上做大量的排錯(cuò)。檢視面板顯示當(dāng)前選中物體的基本信息和它的設(shè)置每一

18、個(gè)物體都包含許多不同的組件。當(dāng)你在檢視面板中查看物體時(shí),每一個(gè)組件都有它自己的昀小標(biāo)題欄。例如,每一個(gè)物體都包含變換組件 (Transform Component)。每個(gè)組件的參數(shù)和設(shè)置都可以在檢視面板中修改。物體結(jié)構(gòu)在物體內(nèi)部的組件將定義物體是什么以及做什么。將一個(gè)新的物體想成一個(gè)空的畫布,并且每一個(gè)組件都是一個(gè)不同畫筆。當(dāng)你組合并設(shè)置不同的組件時(shí),你就像在繪制你物體的行為。特定的組件,就像畫筆不同的顏色,可以在一起工作的很好。然而其他的一些組件就不能一起工作??梢酝ㄟ^使用組件(Component)菜單來向物體添加組件。對于組件的詳細(xì)信息可以參考組件部分此外,在檢視面板中所有的組件都會在它們

19、的名稱旁邊顯示一個(gè)問號,單擊這個(gè)問號可以打開該組件的參考文檔。時(shí)間線(Timeline)視圖使用時(shí)間線(Timeline)視圖可以為當(dāng)前選中物體創(chuàng)建動畫。Unity可以導(dǎo)入包含動畫的文件,但是你可以使用時(shí)間線視圖來制作基本的動畫而無需使用 3D動作軟件。時(shí)間線視圖將幫助你為物體制作動畫參考動畫部分調(diào)整視圖布局現(xiàn)在你已經(jīng)知道了所有不同的視圖,你可以重新布局它們布局下拉列表然你選擇或保存不同視圖布局嘗試選擇不同的布局?,F(xiàn)在,從下拉列表中選擇新布局(New Layout)并給它一個(gè)唯一的名稱。為了自定義布局,你需要分割(Split)和組合(Combine)視圖。Control-單擊或右鍵在兩個(gè)視圖的

20、分割線上單擊,或者在任何視圖的控制欄上。當(dāng)鼠標(biāo)變成一個(gè)分割線時(shí),你可以單擊并拖動鼠標(biāo)來改變視圖的大小。一個(gè)完全的自定義布局你還可以將任何視圖切換為全屏模式。將你的鼠標(biāo)移到視圖上并按下空格鍵(Spacebar),這將臨時(shí)昀大化當(dāng)前視圖并隱藏所有其他視圖。這將允許你在更大的屏幕尺寸上查看更多的細(xì)節(jié)。再次按下空格鍵可以切換到普通視圖模式下。 2. 資源流程(Asset Workflow) 這里我們將解釋在 Unity中如何使用一個(gè)簡單的資源。這些步驟是通用的而且可以看作是一個(gè)基本操作的演示。在該例子中我們將使用 3D網(wǎng)格。創(chuàng)建原始資源使用任何 3D建模軟件創(chuàng)建你的資源。在我們的例子中我們將使用 Ma

21、ya。導(dǎo)入當(dāng)保存了你的資源后,你應(yīng)該將其保存到你的工程文件夾的資源(Assets)文件夾中。當(dāng)你打開 Unity工程,這些資源將被檢測到并導(dǎo)入到工程中。當(dāng)你查看工程視圖 (Project View)時(shí),你將發(fā)現(xiàn)你保存的資源。導(dǎo)入設(shè)置如果你選擇了一個(gè)資源并單擊導(dǎo)入設(shè)置 (Import Setting)按鈕,將出現(xiàn)一個(gè)對話框,該對話框的選項(xiàng)隨著導(dǎo)入資源的不同而不同。向場景中添加資源從工程視圖中單擊并拖動網(wǎng)格到層次(Hierarchy)或場景視圖(Scene View)中即可將其添加到場景中。當(dāng)你拖動一個(gè)網(wǎng)格到場景中時(shí),你將創(chuàng)建一個(gè)擁有網(wǎng)格渲染組件 (Mesh Render Component)的物

22、體。如果你導(dǎo)入的是紋理或聲音文件,你需要將其添加到場景中已有的一個(gè)物體上。將不同的資源放置在一起下面是一些常用資源之間的關(guān)系紋理應(yīng)用到材質(zhì)(Material)材質(zhì)應(yīng)用到物體(帶有渲染網(wǎng)格組件)動畫(Animation)應(yīng)用到物體(帶有動畫組件)聲音應(yīng)用到物體(帶有聲音源(Audio Source)組件)創(chuàng)建預(yù)設(shè)(Prefab) 預(yù)設(shè)是可以在場景中重用的一組物體和組件的集合。幾個(gè)相同的物體和通過同一個(gè)預(yù)設(shè)來創(chuàng)建,這些物體稱為實(shí)例。例如,創(chuàng)建一棵樹的預(yù)設(shè)將允許你在場景中不同的地方放置多個(gè)相同的實(shí)例。因?yàn)檫@些樹都與預(yù)設(shè)相關(guān),任何對預(yù)設(shè)的改變都將自動應(yīng)用到所有樹的實(shí)例上。因此如果你改變要改變網(wǎng)格,材質(zhì)

23、或其他任何東西,你只需要在預(yù)設(shè)中改變一次,那么所有的繼承的實(shí)例樹都將改變。你也可以改變一個(gè)實(shí)例并使用 GameObject->Apply Changes to Prefab將這種改變應(yīng)用到所有相同的實(shí)例上。當(dāng)你有一個(gè)包含多個(gè)組件或子物體層次的物體時(shí),你可以制作一個(gè)頂層(或根)物體的預(yù)設(shè),并可重用整個(gè)物體集??梢詫㈩A(yù)設(shè)看作是物體結(jié)構(gòu)的藍(lán)圖。對于該藍(lán)圖來說所有的拷貝都是相同的。因此,如果藍(lán)圖被更新,那么它的所有實(shí)例也會相應(yīng)更新。這里有幾種不同的方式可以使你通過改變一個(gè)實(shí)例來改變整個(gè)藍(lán)圖。參考預(yù)設(shè)部分。為了從你場景中的物體上創(chuàng)建一個(gè)預(yù)設(shè),首先在工程視圖中創(chuàng)建一個(gè)新的預(yù)設(shè)。并命名,然后在場景中單

24、擊你想用于創(chuàng)建預(yù)設(shè)的物體。拖動它到新的預(yù)設(shè)中,你將看到物體的名稱變成了藍(lán)色。這樣你就創(chuàng)建了一個(gè)可以重用的預(yù)設(shè)。更新資源你已經(jīng)導(dǎo)入,實(shí)例化并將資源連接到了預(yù)設(shè)。現(xiàn)在當(dāng)你需要編輯你的資源時(shí),只要在工程視圖中雙擊它,此時(shí)將運(yùn)行屬性應(yīng)用程序,在這里你可以做任何你需要的改變。當(dāng)你更新它時(shí),保存它。然后但你切換到 Unity,這個(gè)更新將被檢測到,并且資源將被重新導(dǎo)入。而資源到預(yù)設(shè)的連接還將存在。你將看到你的預(yù)設(shè)被更新了,這就是你需要知道的更新資源部分。僅僅需要打開和保存。 3. 創(chuàng)建場景(Creating Scenes) 場景包含所有的游戲物體。它們可以用來創(chuàng)建主菜單,不同的關(guān)卡,和任何其他東西。將不同的

25、場景文件作為一個(gè)不同的關(guān)卡。在每個(gè)場景中,你將放置你的環(huán)境,障礙物和裝飾,實(shí)際上就是一點(diǎn)一點(diǎn)地搭建你的游戲。實(shí)例化預(yù)設(shè)使用上面章節(jié)中描述的創(chuàng)建預(yù)設(shè)(Prefab)的方法。你可以在此處得到更多的關(guān)于預(yù)設(shè)的信息。一旦你創(chuàng)建了預(yù)設(shè),你就可以簡單快速地得到一個(gè)預(yù)設(shè)的拷貝,稱為實(shí)例(Instance)。為了創(chuàng)建任何預(yù)設(shè)的一個(gè)實(shí)例,從工程視圖 (Project View)中拖動一個(gè)預(yù)設(shè)到層次或場景視圖中?,F(xiàn)在你就得到了一個(gè)預(yù)設(shè)拷貝的實(shí)例,你可以將其放置在任何你想要的位置上。添加組件和腳本當(dāng)你選中任何預(yù)設(shè)或物體時(shí),你可以通過使用組件(Components)來向其中添加一些額外的功能。參考組件獲取更多的信息。

26、腳本(Scripts)也是組件的一種類型。選擇物體并從組件 (Component)菜單中選擇一個(gè)組件。你將看到組件顯示在物體的檢視(Inspector)視圖中。缺省情況下腳本也包含在組件(Component)菜單中。如果添加組件斷開了物體到預(yù)設(shè)的聯(lián)系,你可以選擇 GameObject->Apply Changes to Prefab來重新建立聯(lián)系。放置物體一旦你的物體體出現(xiàn)在場景中,你就可以使用視圖工具(View Tools)來定位它。此外你還可以使用位于檢視窗口中的變換(Transform)值來調(diào)整物體的位置和旋轉(zhuǎn),參考變換組件部分。相機(jī)相機(jī)就是你游戲的眼睛。每一個(gè)玩家都是通過一個(gè)或多

27、個(gè)相機(jī)在場景中看東西的。你可以象普通物體一樣定位旋轉(zhuǎn)并父化相機(jī)。相機(jī)就是一個(gè)擁有相機(jī)組件的物體。因此它可以做任何普通物體能做的事情,還可以做一些相機(jī)特有的功能。當(dāng)你創(chuàng)建一個(gè)新的工程時(shí),標(biāo)準(zhǔn)的資源集中安裝了一些有幫助的相機(jī)腳本。你可以通過 Components->Camera-Control來找到它。當(dāng)然相機(jī)還有一些其他的功能,參考相機(jī)組件部分。光照除了一些特殊的情況以外,你需要在大多的場景中添加光照(Lights)。有三種不同類型的光照,它們的功能有一些不同。重要的是它們添加氛圍和氣氛到你的游戲中。不同的光照可以完全改變你的游戲的氛圍,有效地使用光照是一個(gè)非常重要的主題。參考光照組件部分

28、。 4. 發(fā)布(Publishing Builds) 在你創(chuàng)建你的游戲的時(shí)候,你可能會想知道當(dāng)你發(fā)布并在編輯器之外運(yùn)行的時(shí)候會是一個(gè)什么樣子。該部分就是解釋如果訪問發(fā)布設(shè)置(Build Setting)并解釋如何創(chuàng)建不同的游戲。通過 File->Build Settings菜單可以訪問發(fā)布設(shè)置。當(dāng)你發(fā)布你的游戲的時(shí)候它將彈出一個(gè)可編輯的屏幕列表。發(fā)布設(shè)置對話框當(dāng)你第一次打開該窗口時(shí),它將顯示空白,如果在列表為空時(shí)發(fā)布游戲,只有當(dāng)前打開的場景會被發(fā)布。如果你想快速發(fā)布一個(gè)測試場景文件,那就用一個(gè)空的場景列表來發(fā)布。同時(shí)發(fā)布多個(gè)場景也是非常容易的。有兩種方法添加場景。第一種方式是單擊添加打開

29、場景 (Add Open Scene)按鈕,你將看到當(dāng)前的場景出現(xiàn)在列表中。第二種方法就是從工程視圖 (Project View)中將場景文件拖動到列表中。注意,每一個(gè)場景都有一個(gè)不同索引號。Scene 0是第一個(gè)加載的場景。如果你想加載一個(gè)新的場景,在你的腳本中使用 Application.LoadLevel() 如果你已經(jīng)添加了多個(gè)場景文件,并需要重組它們,只需要在列表中單擊并拖動它們即可對它們進(jìn)行排序。如果你想從列表中移出一個(gè)場景,選擇該場景并按 Command-Delete。這個(gè)場景將從列表中消失并將不會包含在發(fā)布中。當(dāng)你設(shè)置好以后,選擇發(fā)布目標(biāo)(Build target)并按下 Bu

30、ild按鈕。你可以從出現(xiàn)的標(biāo)準(zhǔn)保存對話框中選擇一個(gè)名稱和位置。當(dāng)你單擊保存時(shí), Unity將快速的發(fā)布你的游戲。非常簡單。選中壓縮紋理 (Compress Texture)復(fù)選框,將會壓縮工程中所有的紋理。你只需要壓縮一次,但是第一次壓縮將花費(fèi)一些時(shí)間。如果你在壓縮后更新了資源,你將不得不重新壓縮。你也可以在導(dǎo)入的時(shí)候啟用紋理壓縮著可以在 Unity->Preferences菜單中設(shè)置。選中腳本調(diào)試 (Strip Debug Symbols)復(fù)選框?qū)⒁瞥鲈诎l(fā)布中出現(xiàn)的調(diào)試信息。這將減小發(fā)布文件的大小并可以實(shí)現(xiàn)優(yōu)化的目的。Alpha或 betas版應(yīng)該禁用這個(gè)選項(xiàng)已達(dá)到調(diào)試的目的。在昀后發(fā)

31、布 release版的時(shí)候你應(yīng)該選中該復(fù)選框。流式網(wǎng)頁播放流式網(wǎng)頁播放器是 Unity2.0的新特性。這將允許你的網(wǎng)頁播放器在 Scene0完全加載后開始播放。如果你的游戲有十關(guān),強(qiáng)制玩家等待所有的關(guān)卡都下載完成再開始游戲是沒有意義的。當(dāng)你發(fā)布一個(gè)流式網(wǎng)頁播放器時(shí),場景需要的資源需要根據(jù) Secne文件的順序來下載。當(dāng)所有包含在 Secne0中的資源完全下載后,就開始播放了。簡單的來說,流式網(wǎng)頁播放器將使你的游戲盡可能快地播放。你需要確定的唯一一件事就是確認(rèn)在你開始播放前下一等級已經(jīng)加載完成了。通常情況下,對于一個(gè)非流式播放器,你可以使用如下的代碼來加載關(guān)卡: Application.Load

32、Level(“l(fā)evelName”); 對于一個(gè)流式的網(wǎng)頁播放器,你必須首先檢查該關(guān)卡是否已為已完成。這個(gè)可以通過 CanStreamedLevelBeLoaded()函數(shù)來來做。下面為代碼: var levelToLoad = 1; function LoadNewLevel () if (Application.CanStreamedLevelBeLoaded (levelToLoad) Application.LoadLevel (levelToLoad); 如果你想在播放器中顯示下載進(jìn)度,你可以通過 GetStreamProgressForLevel()函數(shù)來讀取進(jìn)度。發(fā)布過程發(fā)布過程

33、將首先放置一個(gè)空的游戲應(yīng)用的副本到你指定的位置。然后它將使用發(fā)布設(shè)置中的場景列表,每次在編輯器中打開一個(gè),優(yōu)化它們,并將它們整合到應(yīng)用程序包中,同時(shí)它將考慮所有包含在場景中的資源并將這些數(shù)據(jù)存儲在應(yīng)用程序包的不同文件中。場景中任何被標(biāo)記為”EditorOnly”的物體將不會被發(fā)布。這對于調(diào)試那些不需要包含在昀終游戲中的腳本是非常有用的。當(dāng)一個(gè)新的關(guān)卡被加載,所有前一個(gè)關(guān)卡的物體都將被銷毀。為了避免這種操作,你可以使用 DontDestroyOnLoad()函數(shù)在任何你不想銷毀的物體上??梢允褂盟鼇肀3忠魳返囊恢辈シ?,或者用于游戲腳本控制器以便保持游戲狀態(tài)和進(jìn)度。當(dāng)新的關(guān)卡下載完成后,一個(gè) On

34、LevelWasLoaded()消息將發(fā)送到所有被激活的物體上。對于如何創(chuàng)建擁有多個(gè)場景的游戲,例如,一個(gè)主菜單,一個(gè)積分屏,和一個(gè)真實(shí)的游戲關(guān)卡,參看腳本教程部分。預(yù)加載發(fā)布將自動預(yù)加載所有場景中的資源。唯一例外的是 Scene0。只是因?yàn)榈谝粋€(gè)場景通常是一個(gè)閃屏,通常需要盡可能快地顯示它。為了確保你的所有內(nèi)容都是預(yù)加載的,你可以創(chuàng)建一個(gè)空的場景調(diào)用 Application.LoadLevel(1)。在發(fā)布設(shè)置中確定這個(gè)空場景的索引為 0,所有的后續(xù)關(guān)卡將被預(yù)加載。 5. 教程(Tutorials) 這些教程可以讓你一步一步地建立真正的工程。對于新手來講,建議首先進(jìn)入 GUI精華和腳本精華部

35、分。二、 場景搭建 (Building Scenes) 該部分將解釋用于創(chuàng)建游戲場景的核心元素。 1. 游戲物體(GameObject) 在 Unity中昀重要的就是游戲物體。理解什么是游戲物體如何使用它是非常重要的。該部分就將解釋這個(gè)概念。什么是游戲物體?在你的游戲中的任何東西都是游戲物體。然而,游戲物體自身并不能做所有的事情。在它們成為角色,環(huán)境或者特定的效果之前它們需要特定的屬性。但是物體中的每一個(gè)都會做許多不同的事情。如果每一個(gè)物體都是一個(gè)游戲物體,我們怎么從一個(gè)靜態(tài)房間中區(qū)分一個(gè)具有強(qiáng)大交互能力的物體?是什么使得游戲物體相互不同呢?答案就是游戲物體是一個(gè)容器。他們是一個(gè)空的可以容納不

36、同塊的盒子,而這些塊組成了一個(gè)帶有光照貼圖的島或是一個(gè)物理驅(qū)動的汽車。為了真正理解游戲物體,你需要理解這些塊;這些塊被稱為組件(Components)。根據(jù)你要?jiǎng)?chuàng)建的物體的不同,你可以添加不同組件到一個(gè)游戲物體中。將游戲物體想象為一個(gè)空的烹調(diào)罐,組件為不同的組成游戲的配料。游戲物體與組件的關(guān)系現(xiàn)在我們知道游戲物體包含組件。我們將通過使用昀常用的組件變換組件(Transform)來討論這兩者之間的關(guān)系。打開任意一個(gè)場景,創(chuàng)建一個(gè)新的游戲物體(使用 Shift-Command-N),選擇他并查看檢視面板(Instpector)空物體的檢視面板你可能注意到了這里有兩個(gè)完全不同的部分?!盙ameObj

37、ect”和”Transform”。屬于游戲物體部分的是關(guān)于游戲物體自身的信息。這里只有物體的名稱。變換部分顯示變換組件的信息。當(dāng)你創(chuàng)建一個(gè)新的物體時(shí),將會自動包含一個(gè)變換組件。所有的物體都會有一個(gè)變換組件。在 Unity中你不可能創(chuàng)建一個(gè)沒有變換組件的物體,變換組件為所有物體提供了獨(dú)特的功能。變換組件變換組件是昀重要的組件之一。它定義了游戲物體在場景視圖中的位置,旋轉(zhuǎn),和縮放。如果游戲物體沒有旋轉(zhuǎn)組件,那么它將不會存在世界中。參考變換組件部分。變換組件也可以使用一個(gè)被稱為父子化(Parenting)的功能,這個(gè)功能被編輯器(Unity Editor)利用并且是使用游戲物體昀關(guān)鍵的部分。父子化父

38、子化的意思是你可以使一個(gè)游戲物體的變換值完全依賴于另一個(gè)不同游戲物體。簡單來說,就是一個(gè)物體隨著另一個(gè)物體移動。當(dāng)一物體是另外一些物體的父(Parent)物體時(shí),這個(gè)物體的旋轉(zhuǎn)將影響所有的子(Child)物體。你可以在層次視圖 (Hierarchy View)中通過拖動任何物體到另一個(gè)物體上來創(chuàng)建一個(gè)父。這將在兩個(gè)物體之間創(chuàng)建父子關(guān)系。這種功能非常類似于文件夾樹的功能,一個(gè)游戲物體包含在另一個(gè)游戲物體中。需要指出的是所有子物體的變換值都是相對于父物體的,這個(gè)被稱為局部坐標(biāo)(Local Coordinates)。通過腳本你可以訪問全局坐標(biāo)(Global Coordinates)和局部坐標(biāo)。一個(gè)游

39、戲物體可以有任意多個(gè)子物體,但是只能有一個(gè)父物體。子物體也可以是其它物體的父物體。你可以很容易的在層次視圖中分辨一個(gè)物體是不是一個(gè)父物體。如果在它名稱的左邊有一個(gè)箭頭,那么它就是一個(gè)父物體。一個(gè)真實(shí)的父子層次樹,所有帶有箭頭的物體都是父物體記住所有的父子化的功能都是通過游戲物體的變換組件執(zhí)行的,而不是游戲物體自身。游戲物體-腳本關(guān)系當(dāng)你創(chuàng)建一個(gè)腳本(script)并將其附加到一個(gè)游戲物體上時(shí),這個(gè)腳本將在檢視面板中作為一個(gè)組件顯示。這是因?yàn)楫?dāng)它們被保存時(shí)腳本就變成一個(gè)組件。從技術(shù)角度來說,腳本是作為組件的一種來編譯的,就像其它組件一樣。任何在腳本中申明的公有變量都將在游戲物體的檢視面板中顯示為

40、可編輯或可連接。編寫腳本的時(shí)候,你能夠直接訪問任何游戲物體類的成員。你可以在這里看到一個(gè)游戲物體類的成員列表。如果任何一個(gè)類作為一個(gè)組件附加在一個(gè)游戲物體上,你就可以在腳本中使用成員名來直接訪問這個(gè)組件。例如鍵入 transform等同于 gameObject.transform。前面的gameObject是編譯器自動加入的,除非你要指定一個(gè)不同的物體。使用 this可以訪問當(dāng)前的腳本組件。使用 this.gameObject可以訪問該腳本所依附的游戲物體,當(dāng)然你可以簡單的使用 gameObject來訪問此游戲物體。邏輯上來說,鍵入 this.transform與 tansform是相同的,如

41、果你想訪問一個(gè)組件而該組件并沒有作為一個(gè)游戲物體成員包含在其中,你需要使用 gameObject.GetComponent() 2. 使用組件(Using Components) 組件是游戲中一個(gè)物體的行為和核心。它們是游戲物體的功能性模塊。如果你還不理解游戲物體和組件之間的關(guān)系,請參考游戲物體部分。一個(gè)游戲物體包含許多不同的組件。缺省情況下。所有的游戲物體都包含一個(gè)變換(Transform)組件。這是因?yàn)樽儞Q表示物體的位置,旋轉(zhuǎn)和縮放。沒有變換組件,游戲物體將不會有位置。嘗試創(chuàng)建一個(gè)空的游戲物體。單擊 GameObject->Create Empty菜單項(xiàng)。選擇新游戲物體,并查看檢視面

42、板。每一個(gè)空的游戲物體都有一個(gè)變換組件可以使用檢視面板來查看都有什么組件附加在游戲物體上。但一個(gè)組件被加入或刪除的時(shí)候,檢視面板將顯示當(dāng)前附加的組件??梢允褂脵z視面板來改變?nèi)魏谓M件的屬性 (包括腳本)。添加組件可以通過組件菜單為當(dāng)前的游戲物體添加一個(gè)組件。嘗試添加一個(gè)剛體(Rigidbody)到剛創(chuàng)建的物體上。選擇該物體并從菜單中選擇 Component->physics->Rigidbody?,F(xiàn)在你將會發(fā)現(xiàn)剛體屬性顯示在檢視面板中,如果在該物體被選中的情況下按下播放鍵(Play)你將會有驚喜的發(fā)現(xiàn)。注意剛體是如何在一個(gè)空物體上添加功能的。附加了剛體組件的空物體可以附加任意數(shù)量的組

43、件到一個(gè)游戲物體。一些組件可以與其他一些組件一起工作。例如,剛體可以和任何碰撞物一起工作。剛體通過 Ageia PhysX物理引擎控制變換,并且碰撞器允許剛體與其它的碰撞器碰撞和交互。一個(gè)不同的組件組合例子是一個(gè)粒子系統(tǒng) (Particle System)。它們使用一個(gè)粒子發(fā)射器 (Particle Emitter),粒子動畫 (Particle Animator)和粒子渲染器(Particle Renderer)來創(chuàng)建一組移動的粒子。可以通過點(diǎn)擊位于檢視面板頭部的問號訪問組件的參考頁。編輯組件一個(gè)組件昀重要的方面是其可擴(kuò)展性。當(dāng)你添加一個(gè)組件到一個(gè)物體上時(shí),它有不同的可以調(diào)整的值或者屬性(P

44、roperties),也可以在游戲中通過腳本來調(diào)整它。有兩種不同類型的屬性:值(Values)和引用(References)。下圖中是一個(gè)具有音頻源 (Audio Source)組件的空游戲物體。在檢視面板中所有音頻源的值都是缺省的。這個(gè)組件包含一個(gè)單一的引用屬性和七個(gè)值屬性。音頻剪輯 (Audio Clip)是一個(gè)引用屬性。當(dāng)這個(gè)音頻源開始播放時(shí),它將嘗試播放 Audio Clip屬性所引用的音頻文件。如果沒有添加引用屬性,將會出現(xiàn)一個(gè)錯(cuò)誤因?yàn)闆]有音品將被播放。你必須在檢視面板中引用音頻文件。你可以非常簡單的從工程視圖中將音頻文件拖動到引用屬性中?,F(xiàn)在一個(gè)音效文件在音頻剪輯屬性中被引用組件可

45、包含任何其它類型組件的引用,文件或游戲物體。你只需拖動適當(dāng)?shù)囊玫竭@個(gè)屬性上。引用類型是非常有用和強(qiáng)大的,尤其是在使用腳本時(shí)。參考腳本教程。音頻剪輯中剩下的七個(gè)都是值屬性。都可以通過單擊并按下 Enter鍵來調(diào)整它們。使用鍵盤輸入值,并按 Enter保存它。你也可以通過使用 option-或 right-click或拖動數(shù)字屬性來快速滾動這些值。音頻剪輯中的值屬性都是數(shù)字,但是一些屬性也可以是字符串。例如,文本網(wǎng)格(Text Mesh)組件包含一個(gè)文本(Text)屬性,這個(gè)屬性可以接受字母數(shù)字字符。一些值可以包含字符,例如文本網(wǎng)格中的 Text屬性測試屬性當(dāng)你的游戲處在播放模式 (Play M

46、ode)中時(shí),你可以在游戲物體的檢視面板中修改它的屬性。例如,你或許想試驗(yàn)不同的跳躍高度。如果你在一個(gè)腳本中創(chuàng)建了一個(gè)跳躍高度 (Jump Height),你可以進(jìn)入播放模式,改變這個(gè)值,并按跳躍鍵查看結(jié)果。然后不需要退出播放模式就可以再次改變這個(gè)值。當(dāng)你退出播放模式時(shí)你的屬性值將恢復(fù)到播放前的值,因此,你不會丟失任何工作。這個(gè)工作方式,提供給你難以置信的方便來試驗(yàn),調(diào)整,精簡你的游戲而不必要花費(fèi)大量的時(shí)間。移除組件如果你想移除一個(gè)組件,在檢視面板的頭部使用 option-或右擊然后選擇移除組件(Remove Component)?;蛘吣憧梢詥螕粑挥诮M件頭部問號旁邊的選項(xiàng)圖標(biāo)。所有的屬性值都將

47、丟失并且是不可恢復(fù)的。因此在移除組件前請確認(rèn)你要這樣做。組件-腳本關(guān)系盡管腳本(Scripts)看起來都與組件不同,事實(shí)是腳本是組件的一種類型。它是一種你自己創(chuàng)建的組件。你可以定義能夠顯示在檢視面板中的成員,并且它將執(zhí)行你寫出的任何功能。腳本組件有很多組件可以通過任何腳本直接訪問。例如,如果你想訪問變換組件的變換(Translate)功能,你只需要使用 transform.Translate()或 gameObject.transform.Translate()。因?yàn)樗械哪_本都是附加在游戲物體上的,所以當(dāng)你寫 transform的時(shí)候就暗示要訪問當(dāng)前腳本所在的物體的變換組件。當(dāng)然這兩者完全等

48、價(jià)的。使用 GetComponent() 有許多組件不能成為一個(gè)游戲物體類的成員。因此你不能隱式訪問它們,必須顯式訪問它們。通過調(diào)用 GetComponent(“component name”)并存儲一個(gè)引用到結(jié)果中。當(dāng)你需要引用附加到該游戲物體上的其它腳本時(shí)這個(gè)方法是昀常用的。假設(shè)你在寫腳本 B并且你想做一個(gè)腳本 A的引用,而這兩者是附加在相同的游戲物體上的。你可以使用 GetComponent()來引用腳本。在腳本 B中你可以使用 scriptA = GetComponent(“ScriptA”); 然后你就能夠在腳本 B中通過 scriptA.variableName來訪問任何腳本 A中

49、的變量。 3. 預(yù)設(shè)(Prefab) 預(yù)設(shè)是一個(gè)存儲在工程視圖中可重用的游戲物體。預(yù)設(shè)可以被插入到任意數(shù)量的場景中,并可多次出現(xiàn)在同一場景中。當(dāng)你添加一個(gè)預(yù)設(shè)到場景中,你就創(chuàng)建了一個(gè)它的實(shí)例。所有的預(yù)設(shè)實(shí)例都與原始的預(yù)設(shè)相關(guān)聯(lián)并且本質(zhì)上是它的一個(gè)克隆。不論在你的工程中存在多少實(shí)例,當(dāng)你對預(yù)設(shè)作了任何改變后你將看到這種改變被應(yīng)用到所有的實(shí)例上。不論你的預(yù)設(shè)是單一的一個(gè)游戲物體或者是一組游戲物體,在預(yù)設(shè)的變換層次中所作的任何改變都建碑應(yīng)用到它的實(shí)例上。創(chuàng)建預(yù)設(shè)為了創(chuàng)建預(yù)設(shè),你需要一個(gè)新的空預(yù)設(shè)。這個(gè)空預(yù)設(shè)不包含任何物體,并且你不能創(chuàng)建它的一個(gè)實(shí)例。將一個(gè)新的預(yù)設(shè)想象為一個(gè)空的容器,等待使用游戲物體

50、數(shù)據(jù)來填充。一個(gè)新的空預(yù)設(shè),它不能被實(shí)例化,除非你使用游戲物體來填充它為了填充預(yù)設(shè),你需要使用在場景中已經(jīng)創(chuàng)建的游戲物體。下面是精確的步驟: 在工程視圖中,選擇一個(gè)你要放置預(yù)設(shè)的文件夾 從主菜單中選擇 Assets->Create->Prefab,或者從工程視圖的上下文菜單中選擇 Create->Prefab 命名該預(yù)設(shè) 在層次視圖(Hierarchy view)中,選擇你要放入預(yù)設(shè)的游戲物體 將它們從層次使用中拖放到工程視圖中在你執(zhí)行了上述步驟后,游戲物體和它的子物體都將被拷貝到預(yù)設(shè)中?,F(xiàn)在,預(yù)設(shè)可以在多個(gè)實(shí)例中被重用。在層次中的原始物體現(xiàn)在已經(jīng)成了該預(yù)設(shè)的一個(gè)實(shí)例。創(chuàng)建更

51、多預(yù)設(shè)的實(shí)例是非常簡單的。實(shí)例化預(yù)設(shè)為了在當(dāng)前場景中創(chuàng)建一個(gè)預(yù)設(shè)的實(shí)例,從工程視圖中拖動預(yù)設(shè)到場景(Scene)或?qū)哟我晥D中。這將從預(yù)設(shè)中拷貝所有父物體和所有的子物體。這些游戲物體被連接到(linked)預(yù)設(shè),在工程視圖中將使用藍(lán)色的文本來顯示它們。其中三個(gè)物體是預(yù)設(shè)的實(shí)例繼承繼承意味著當(dāng)預(yù)設(shè)改變時(shí),這些改變也將被應(yīng)用到所有與之相連的物體上。例如,如果你添加一個(gè)腳本到一個(gè)預(yù)設(shè),那么所有該預(yù)設(shè)的實(shí)例都將包含該腳本。然而你也可以修改單個(gè)實(shí)例的屬性而不會破壞與預(yù)設(shè)的聯(lián)系。一個(gè)鏈接物體檢視面板(Inspector)中的所有公有屬性都有一個(gè)復(fù)選框。這個(gè)復(fù)選框是一個(gè)重載標(biāo)記(override flag)。

52、如果該屬性的重載標(biāo)記被啟用,表示該屬性將不會受到預(yù)設(shè)改變的影響。簡單來說,這允許你修改實(shí)例物體并使得它們不同于它們的預(yù)設(shè),而且又不會破壞它與預(yù)設(shè)之間的聯(lián)系。一個(gè)實(shí)例物體和非繼承一個(gè)實(shí)例物體和非繼承 當(dāng)你在檢視面板中修改一個(gè)屬性的時(shí)候,該屬性的重載標(biāo)記會自動啟用。任何對已有屬性的改變都不會打斷與預(yù)設(shè)的聯(lián)系。然而有一些改動將斷開它,下面是保持預(yù)設(shè)連接的基本規(guī)則: 不能添加一個(gè)新的組件到一個(gè)實(shí)例上 不能從一個(gè)實(shí)例上移除一個(gè)組件 不能使用其他游戲物體作為實(shí)例的子物體如果你這樣做,你將看到一個(gè)警告消息出現(xiàn)并要求你確認(rèn)。當(dāng)一個(gè)實(shí)例與預(yù)設(shè)斷開后,對預(yù)設(shè)的修改將不會影響到這個(gè)游戲物體。如果你特意或是意外地?cái)嚅_

53、了實(shí)例的連接,你可以應(yīng)用你的改變到預(yù)設(shè)并重新建立該連接。這將使得預(yù)設(shè)和所有的實(shí)例都發(fā)生改變。應(yīng)用改變創(chuàng)建或編輯一個(gè)復(fù)雜預(yù)設(shè)的時(shí)候,你可以非常容易的在場景中實(shí)例化它們,編輯實(shí)例,并應(yīng)用改變到預(yù)設(shè)。這種工作方式將允許你在場景視圖中查看并修改預(yù)設(shè)。一旦你修改完成,選擇該實(shí)例物體的根并從菜單中選擇 GameObject->Apply changes to Prefab。所有的改變都被拷貝到預(yù)設(shè)中,并應(yīng)用到每個(gè)場景中所有的實(shí)例上。將物體連接到預(yù)設(shè)可以將預(yù)設(shè)應(yīng)用于現(xiàn)有的沒有連接的物體上。這將添加所有該物體沒有的組件到物體上并將其連接到預(yù)設(shè)。在某些場合這是非常有用的。為了連接任何已有的物體到到預(yù)設(shè),按

54、住 Option并將預(yù)設(shè)從工程視圖中拖放到層次視圖的物體上。這個(gè)游戲物體將成為該預(yù)設(shè)的一個(gè)實(shí)例。這個(gè)操作不會改變預(yù)設(shè)本身,但是會在你剛連接的物體上添加或移除一些組件和子游戲物體。導(dǎo)入預(yù)設(shè)當(dāng)你放置了一個(gè)網(wǎng)格資源到你的資源文件夾中時(shí),Unity將自動導(dǎo)入該文件并生成一些看起來與預(yù)設(shè)相似東西。但它們并不是預(yù)設(shè),這只是簡單的資源文件。注意資源文件圖標(biāo)與預(yù)設(shè)圖標(biāo)是有點(diǎn)不同的這個(gè)資源在場景中作為一個(gè)游戲物體被初始化。可以在該游戲物體上添加或移除組件。然而你不能將任何改變應(yīng)用到資源自身上因?yàn)檫@需要添加一些數(shù)據(jù)到該資源物體上!如果要?jiǎng)?chuàng)建需要重用的物體,你應(yīng)該將資源實(shí)例作為預(yù)設(shè)。當(dāng)你已經(jīng)創(chuàng)建了一個(gè)資源實(shí)例,可以

55、創(chuàng)建一個(gè)新的空預(yù)設(shè)并拖動游戲物體到該預(yù)設(shè)上?,F(xiàn)在你擁有了一個(gè)連接到該物體的標(biāo)準(zhǔn)預(yù)設(shè)。下面給出了一些詳細(xì)的步驟: 從工程視圖中拖動一個(gè)資源文件到場景或?qū)哟我晥D中。 修改該資源(例如,添加腳本,子物體,組件等等) 創(chuàng)建一個(gè)新的空預(yù)設(shè)。從菜單中選擇 Assets->Create->Prefab,或者從工程視圖的上下文菜單中選擇 Create->Prefab 從層次視圖中拖動該物體到預(yù)設(shè)上。 4. 燈光 對于每一個(gè)場景燈光是非常重要的部分。網(wǎng)格和紋理定義了場景的形狀和外觀,而燈光定義了場景的顏色和氛圍。你很可能需要在每個(gè)場景中設(shè)置多個(gè)燈光。讓他們一起工作需要一點(diǎn)練習(xí)但是結(jié)果是非常驚人

56、的。簡單的兩個(gè)燈光可以通過從菜單中選擇 GameObject->Create Other并將其添加到你的場景中。有三種類型的燈光。一旦添加了一個(gè)燈光你就可以像操作其他物體一樣操作它。此外你還可以通過選擇 Component->Rendering->Light為選中的物體添加一個(gè)燈光組件。在燈光的檢視面板中有許多不同的選項(xiàng)檢視面板中燈光的屬性通過簡單地改變燈光的顏色(Color),你可為場景添加完全不同的氣氛。明亮,太陽光黃昏,中度光詭異的夜光光照燈光將使你的游戲具有個(gè)性和情趣。使用燈光來照亮場景和物體以便創(chuàng)建一個(gè)完美的可視氛圍。燈光可以用來模擬太陽,燃燒的火光,閃光,炮火或者

57、爆炸,下面給出幾個(gè)例子。燈光的檢視面板在 Unity中有三種不同類型的燈光: 點(diǎn)光源(Point lights)從一個(gè)位置向所有方向發(fā)射相同強(qiáng)度的光,就像燈泡一樣。 方向光(Directional lights)放置于無窮遠(yuǎn)處并影響場景中所有的物體,就像太陽一樣。 投射光(Spot lights)從一個(gè)點(diǎn)向一個(gè)方向發(fā)光,像一個(gè)車燈一樣照亮一個(gè)錐形的范圍。屬性 類型(Type):當(dāng)前光照物體的類型 方向(Directional):一個(gè)放置在無窮遠(yuǎn)的光源。它將影響場景中的所有物體并不會衰減。 點(diǎn)(Point):一個(gè)從它的位置向所有方向發(fā)光的光源,將影響位于它的范圍內(nèi)的所有物體。 投射(Spot):照亮一個(gè)錐形(Spot Angle)的范圍(Range),只有在這個(gè)區(qū)域中的物體才會受到它的影響。 顏色(Color):光線的顏色。 衰減(Attenuate):光照是否隨著距離而減弱?如果禁用,物體的亮度將在進(jìn)入或離開它的光照范圍時(shí)突變??梢杂脕碇谱饕恍┨厥獾男Ч?。如果是方向光這個(gè)參數(shù)將被忽略。范圍(Range):光線將從光源的中心發(fā)射多遠(yuǎn) 投射角(Spot Angle):如果是投射光,這個(gè)參數(shù)將決定圓錐的角度。 陰影(Shadows)(Pro only):將被該光

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論