Unity3D入門教程中文版.doc_第1頁
Unity3D入門教程中文版.doc_第2頁
Unity3D入門教程中文版.doc_第3頁
Unity3D入門教程中文版.doc_第4頁
Unity3D入門教程中文版.doc_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Unity3D基本操作、用Unity3D創(chuàng)建簡單漫游1基本設(shè)置1修改視角控制鍵為右鍵9如何取消瀏覽窗口上的右鍵菜單10植物效果設(shè)置10水面效果的設(shè)置15烘培光影貼圖的處理16如何制作連續(xù)加載的場景漫游29用Unity3D 創(chuàng)建簡單漫游1. 建模中使用的圖片、文件、文件夾等以及模型中物體、材質(zhì)等的名稱都不能使用中文或者特殊符號,可以使用英文字母、數(shù)字、下劃線等。2. 調(diào)整Max的單位為米 。3. 烘培光影的設(shè)置。4. 模型的中的植物效果,第一種是單面片植物,需要設(shè)置其軸心為其物體的對稱中心;第二種是十字交叉的植物效果;第三種則是到Unity3D編輯器中通過地形編輯器系統(tǒng)添加。基本設(shè)置5. Fbx導(dǎo)出插件下載地址:/adsk/servlet/item?siteID=123112&id=107758556. 將Max文件中用到的圖片都拷貝到Textures目錄下,如7. 再打開Max文件,導(dǎo)出為FBX文件,使用默認設(shè)置,F(xiàn)BX文件也放置在和Max文件相同的目錄下,如導(dǎo)出的時候,可以將模型簡單的分類,如地面、植被、樓房等,也可以將模型分為幾個區(qū)域,如小區(qū)1,小區(qū)2,學(xué)校等等分開導(dǎo)出8. 將包含Max文件、Fbx文件和Textures文件夾的文件夾拷貝到Unity3D項目的Assets目錄下,如下圖中紅圈在下一次用Unity3D編輯器開啟本項目的時候,編輯器將自動導(dǎo)入/更新該文件夾中的信息,并生成Materials文件夾,如9. 啟動Unity3D編輯器10. 選擇剛才拷貝進來的文件中的Fbx文件,如修改其中的Meshes下的Scale Factor和Generate Colliders,如點擊其他Fbx文件或者單擊其他區(qū)域?qū)棾鋈缦碌膶υ捒螯c擊Apply即可,類似的方式設(shè)置其他Fbx文件注意,其中植物/植被類的Fbx文件不需要設(shè)置Generate Colliders項11. 將Fbx文件直接拖放到Hierarchy區(qū)域,如12. 點擊Hierarchy區(qū)域中的對象,同時將鼠標移動三維顯示區(qū)域,同時點擊鍵f,則該對象自動適配顯示到三維區(qū)域中心,如13. 將全部fbx添加完成后,提高場景亮度如下單擊Ambient Light,如下調(diào)整為即可設(shè)置完成14. 設(shè)置第一人稱瀏覽刪除場景中Main Camera將Project區(qū)域的Standard Assets下的Prefabs下的First Person Controller拖到Hierarchy區(qū)域中點選First Person Controller,調(diào)整First Person Controller的位置到場景中合適的位置,并設(shè)置其高度為1.37到2.1左右設(shè)置First Person Controller的高度在場景中地面之上15. 點擊運行,即可測試修改視角控制鍵為右鍵16. 打開Project區(qū)域中的StandardAssets下的CameraScripts下的MouseLook腳本,在在Quaternion originalRotation;void Update ()if (axes = RotationAxes.MouseXAndY)/ Read the mouse input axis中添加一行代碼修改為Quaternion originalRotation;void Update ()if(Input.GetAxis (Fire2)=0) return;if (axes = RotationAxes.MouseXAndY)/ Read the mouse input axis如何取消瀏覽窗口上的右鍵菜單只要設(shè)置Unity對象的參數(shù)即可禁止右鍵菜單的顯示,如下: 植物效果設(shè)置17. 對于單面片的植物效果,需要設(shè)定其材質(zhì)為Transparent/VertexLit類型,并為其添加公告板腳本設(shè)定前設(shè)置材質(zhì)類型為Transparent/VertexLit類型,如下給單面片植物添加公告板腳本的方法是先選擇該植物,然后點擊菜單component下的scripts下的camera Facing Billboard即可,如下設(shè)置材質(zhì)類型和添加公告板腳本后,如下如果沒有該腳本組件,可以打開腳本編輯器,拷貝如下代碼到腳本中,保存到AssetsScripts下,命名為CameraFacingBillboard.cs即可using UnityEngine; using System.Collections; public class CameraFacingBillboard : MonoBehaviour public Camera cameraToLookAt; void Start() cameraToLookAt = Camera.main; void Update() Vector3 v = cameraToLookAt.transform.position - transform.position; v.x = v.z = 0.0f; transform.LookAt(cameraToLookAt.transform.position - v); 18. 對于十字交叉的植物,需要將其材質(zhì)設(shè)定為Nature/Vegetation Two Pass unlit類型設(shè)置前的效果設(shè)置后的效果水面效果的設(shè)置19. 創(chuàng)建一個網(wǎng)格面片20. 給該水面面片設(shè)置水材質(zhì)和水腳本,如即可烘培光影貼圖的處理21. Unity3D光影烘培的要求U3D的光影貼圖使用的是3Dmax中的標準材質(zhì)的自發(fā)光貼圖通道來存儲光影貼圖相關(guān)參數(shù),如22. 給每個物體都附上貼圖,如果是純色物體,也付給純色貼圖23. 打光后,選擇要烘培的物體設(shè)置輸出路徑添加烘培輸出的貼圖類型24.一、Unity基礎(chǔ)本部分是你開始 Unity的關(guān)鍵。這里將解釋 Unity的界面,菜單項,使用資源,創(chuàng)建場景,和發(fā)布。當你完全閱讀了該部分后,你將能夠理解 Unity是如何工作的,以及如何使其更加有效的工作,和如何將簡單的游戲放置在一起。 1. 界面(Learning the interface) 現(xiàn)在我們開始學(xué)習(xí)Unity,如果你還沒有打開 Unity,你可以通過雙擊位于 Application-Unity文件夾中的 Unity圖標來運行它,當它第一次運行時你將看到如下的場景: Unity運行時的缺省場景,如果你打開過任何實例,你的屏幕會與上圖不同有很多需要學(xué)習(xí)的東西,讓我們花費點時間來觀察理解上述界面。我們將介紹每一個接口元素。概要主窗口的每一個部分都被稱為視圖(View)。在 Unity中有多種類型的視圖,但是,你不需要同時看見所有的視圖。不同的布局模式 (Layout modes) 包含的視圖是不同的。 通過單擊布局下拉控件來選擇不同的布局, 該控件位于窗口的右上角。布局模式選擇下拉列表現(xiàn)在,單擊布局選擇,并單擊 Animation,切換到動畫布局 (Animation layout)。還可以從菜單中選擇 Window-Layouts-Animation來切換。動畫布局包含所有的視圖,這是昀好的用來介紹它們的方法。通過視圖左上角的名稱你可以迅速的分辨這些視圖。這些視圖是:場景視圖(Scene View)-用于放置物體游戲視圖(Game View)-表示游戲在運行時的外觀層次視圖(Hierarchy)-當前場景中的游戲物體的列表工程視圖(Project)-顯示當前打開工程中所有可用的物體和資源檢視視圖(Instpector)-顯示當前選中物體的細節(jié)和屬性時間線(Timeline)-用于為當前選中物體創(chuàng)建基本的時間線動畫場景視圖(Scene View) 場景視圖場景視圖(Scene View)是一個可交互的沙盤。你將使用它來選擇并在場景中定位所有的游戲物體(GameObjects),包括玩家,攝像機,敵人等。在場景視圖中操縱并修改物體是 Unity非常重要的功能。這是昀好的通過設(shè)計者而不是玩家的角度來查看場景的方法。在場景視圖中你可以隨意移動并操縱物體,但是你應(yīng)該知道一些基本的命令以便有效的使用場景視圖。第一個你應(yīng)該知道命令是Frame Selected命令。 這個命令將居中顯示你當前選中的物體。 你可以在層次視圖(Hierarchy)單擊任何物體,然后移動你的鼠標到場景視圖上并按F鍵。 場景視圖將移動以居中顯示當前選擇的物體。這個命令是非常有用的,你將在場景編輯的時候經(jīng)常使用它。在場景視圖中操作在場景視圖的上方有一個包含布局模式選擇的工具欄工具欄盡管現(xiàn)在的工具欄沒有附著在場景視圖窗口上,但是位于左側(cè)的四個按鈕可用來在場景視圖中導(dǎo)航并操縱物體,中間的兩個用來控制選中的物體軸心如何顯示。左邊的第一個 View Tool將在以后說明。后面的工具為操縱工具 (Manipulation Tools),中間的兩個為手柄位置工具 (Handle Position Tool) 選中任何操縱工具可允許你交互時的移動,旋轉(zhuǎn)或縮放物體。當你已經(jīng)選擇了一個工具時你可以在場景視圖中單擊任何一個物體選中它,現(xiàn)在按下 F鍵使得該物體居中顯示。如下不同的操縱工具平移工具熱鍵 W 旋轉(zhuǎn)工具熱鍵 E 縮放工具熱鍵 R 當選中一個物體時你將看到 Gizmo坐標,每個工具有不同的 Gizmo坐標形式平移旋轉(zhuǎn)縮放點擊并拖動當前 Gizmo坐標的任何一個坐標軸以便平移,旋轉(zhuǎn)或縮放當前選中物體的變換 (Transform)組件。你也可以通過單擊并拖動 Gizmo坐標的中心來在多個軸上操縱物體。如果你有一個三鍵的鼠標,你可以通過單擊中鍵來調(diào)整昀后調(diào)整的軸而不用直接點擊它。參考變換組件(Transform Component)部分獲取更多內(nèi)容。手柄位置工具 (HandlePositionTool) 用來控制物體或一組選中的物體的軸心如何和在哪里顯示。手柄位置工具選擇中心(Center)意味著使用當前所選所有物體的共同軸心,選擇軸心 (Pivot)意味著將使用各個物體的實際軸心手柄位置設(shè)置為中心,使用物體的共同軸心手柄位置設(shè)置為軸心,使用實際的物體軸心在場景視圖中導(dǎo)航根據(jù)使用的鼠標的不同,有很多不同的方式可以在場景視圖中導(dǎo)航。使用三鍵鼠標按住 Option按鈕并拖動鼠標左鍵可以使用旋轉(zhuǎn)模式 (Orbit mode)按住 Option按鈕并拖動鼠標中鍵可以使用拖動模式 (Drag mode)按住 Option按鈕并拖動鼠標右鍵可以使用縮放模式 (Zoom mode)。也可以使用滾輪來縮放(略)視圖工具模式視圖工具的拖動模式快捷鍵 Q 在拖動模式(Drag Mode)下,在場景視圖中單擊并拖動鼠標來上下左右移動視圖。 旋轉(zhuǎn)(Orbit)和縮放(Zoom Modes) 模式也是昀常用的視圖工具。 保持視圖工具選中并按住Option鍵即可進入旋轉(zhuǎn)模式。單擊并拖動鼠標,可以看到視圖是如何旋轉(zhuǎn)的。同時注意視圖工具 按鈕從手型變成了眼睛。視圖工具的旋轉(zhuǎn)模式 Option鍵昀后,你可以通過按下 Command按鈕進入縮放模式。在這種模式下,單擊并拖動鼠標將前后縮放你的視圖。注意縮放模式的圖標是一個放大鏡。視圖工具的縮放模式 Command鍵使用視圖工具模式并拖動鼠標是基本的場景視圖導(dǎo)航方法。場景視圖控制欄所有的視圖的頂部都有不同的控制欄 (Control Bar),場景視圖控制欄擁有多數(shù)選項,并且看起來像下面的樣子:場景視圖控制欄第一個下拉菜單為視圖選擇器。展開它你可以改變當前視圖。所有的視圖都有這個選擇器,如果你想創(chuàng)建自定義的一個界面布局,它是非常有用的每個視圖都有的視圖選擇器下一個下拉菜單是繪制模式 (Draw Mode)。你可以選擇場景視圖使用紋理模式,線框模式或者紋理線框模式。這個對你發(fā)布游戲是沒有任何影響的。繪制模式下拉框第三個下拉菜單為渲染模式(Render Mode)。你可以選擇使用 RGB模式或 Alpha模式。同樣這將不會影響游戲發(fā)布。渲染模式下拉框控制欄中的下一項是一組三鍵。視圖控制欄中的三鍵左邊的開關(guān)控制普通光照。當該按鈕被禁用時,你將看到整個場景中簡單光照。當它被啟用時,你將看到你放在場景中的光照物體的影響。啟用該按鈕將允許你在發(fā)布游戲時看到游戲中的光照。中間的按鈕控制各種不同效果的開關(guān),例如場景視圖網(wǎng)格 (Scene View Grid),天空盒 (Skyboxes)和 GUI元素(GUI Elements),啟用該按鈕將允許你在發(fā)布看到這些效果右邊的按鈕控制正交模式 (Orthographic Mode)。打開它將移出所有的景深效果。該按鈕不會影響到你發(fā)布游戲。正交模式用來精確定位物體。景深相機正交相機。物體不會隨著距離的增大而變小下一個下拉列表是方向(Direction)下拉列表。它將移動場景視圖到你選擇的方向。昀后一個下拉列表是層(Layer)下拉列表。你可以使用它來選擇不同層的物體。參考層部分。該選項不會影響游戲發(fā)布。游戲視圖游戲視圖-你的游戲的可見部分游戲視圖(Game View)將使用游戲中設(shè)置的相機信息來渲染。這個視圖顯示的是游戲運行過程中你將看到的場景。如果你平移或者旋轉(zhuǎn)場景的主相機,你將看到游戲視圖的變化。你需要使用一個或多個相機(Cameras)來控制玩家在游戲中實際看到的場景。參考相機組件部分。播放按鈕和狀態(tài)欄這個按鈕用來在游戲視圖中播放,暫停和步進你的游戲。在你構(gòu)建場景的任何時候,你都可以進入播放模式 (Play Mode)并看看你的游戲是如何工作的。播放按鈕和狀態(tài)欄按下播放按鈕 (Play Button)進入播放模式。當你的場景在播放模式下時,你還可以移動,旋轉(zhuǎn)和刪除物體。你也可以改變變量的設(shè)置。在播放模式下所做的任何改變都是暫時的,并在你退出播放模式時重置。你可以再次單擊播放按鈕退出。在播放模式下,你可以停止或步進你的游戲。暫停并檢視你的場景是昀好的發(fā)現(xiàn)問題的方法。右側(cè)的狀態(tài)欄有多種不同的作用。它將提供上下文敏感信息和提示,錯誤信息和來自與腳本的輸出語句。如果你的游戲有任何問題,查看狀態(tài)欄將是昀好的發(fā)現(xiàn)問題的方法。你可以雙擊狀態(tài)欄打開控制臺窗口,其中將顯示所有的腳本或可見的運行時錯誤信息。游戲視圖控制欄控制欄上緊挨著視圖下拉列表的是寬高下拉列表 (Aspect Drop-down)。這里,你可以指定游戲視圖窗口的寬高比為不同的值。這將影響到 GUI元素的位置。使用它來測試你的游戲在不同分辨率下的外觀??刂茩谏详烙疫叺氖?Gizmos按鈕(Gizmos Button)。這將確定是否顯示 Gizmos坐標工程視圖(Project View) 工程視圖-存儲所有資源當你創(chuàng)建一個工程時,將生成一組文件夾。其中之一被稱為資源(Assets)文件夾。在工程視圖(Project View)中可以查看資源文件夾。如果你打開過資源文件夾,你將發(fā)現(xiàn)所有的項都將出現(xiàn)在工程視圖中。不同的是在工程視圖中,你將創(chuàng)建并將物體連接在一起。這些關(guān)系將存儲在工程文件夾的其他位置。從工程視圖中移動資源將維持并更新文件之間的聯(lián)系。從 Finder中移除資源將斷開聯(lián)系。因此,你應(yīng)該只使用 Finder來將文件添加到資源文件夾。任何其他對資源的操作都應(yīng)該在工程視圖中進行。導(dǎo)入物體一旦你創(chuàng)建了資源(模型,圖像,聲音或者腳本),你可以使用 Finder將其正確地放置到資源文件夾下。當你做這些的時候 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的文件夾并將所有的腳本文件放置其中。在你選中的文件上創(chuàng)建文件夾將創(chuàng)建嵌入式的文件夾。使用嵌入式的文件夾可以保持你的工程視圖整潔。注意:如果展開或折疊一個目錄時按下了 Alt鍵,所有的子目錄都將展開或折疊。導(dǎo)入設(shè)置在控制欄上有一個導(dǎo)入設(shè)置按鈕 (Import Settings),位于創(chuàng)建下拉列表的旁邊。根據(jù)所選資源的不同當該按鈕被單擊時將在導(dǎo)入設(shè)置彈出窗口中顯示不同的選項。參考導(dǎo)入資源 (Importing Assets)部分。工程視圖控制欄設(shè)置(Settings)按鈕將為當前選擇的資源打開導(dǎo)入設(shè)置。創(chuàng)建下拉列表將會在你選擇的目錄下創(chuàng)建項目,創(chuàng)建文件夾是一種快速有效的組織你的工程視圖的方法。層次(Hierarchy) 層次-當前場景中的所有物體層次視圖(Hierarchy)將顯示當前打開的 .unity場景文件 (Scene File) 中的所有物體。它用于選擇并成組物體。當從場景中添加或刪除一個物體時,它將在層次中顯示或消失。如果你不能在場景視圖中同時看到所有物體,你可以使用層次來選擇并檢視它們。物體層次 Unity使用一個稱為父化(Parenting)的概念。任何物體都可以成為另一個物體的父或子。一個子物體可以從它的父物體繼承移動和旋轉(zhuǎn)。Parenting對于組織場景,角色,接口元素或者保持場景整潔有很大的用處。單擊一個物體并將其拖動到另一個物體上可以建立父子關(guān)系。你將會看到一個三角顯示在新的父物體的左邊,現(xiàn)在你可以展開或折疊父以便在層次中查看他的子物體,而不會影響你的游戲。顯示預(yù)設(shè)按鈕 (Show Prefab Button) 當位于控制欄 (Control Bar)上的該按鈕被啟用時,任何一個在層次中選中的預(yù)設(shè)(Prefab)實例將在工程視圖中顯示它的一個可視化的參考,如果你在場景中改變預(yù)置實例的名稱,這是非常有用的。檢視檢視-選中物體的細節(jié)檢視面板 (Inspector)顯示當前選中物體的基本信息,也顯示它所包含的組件(Component)和組件的屬性。它是用來設(shè)置場景中物體屬性的地方。當創(chuàng)建一個好玩的游戲時,你將在檢視面板上做大量的排錯。檢視面板顯示當前選中物體的基本信息和它的設(shè)置每一個物體都包含許多不同的組件。當你在檢視面板中查看物體時,每一個組件都有它自己的昀小標題欄。例如,每一個物體都包含變換組件 (Transform Component)。每個組件的參數(shù)和設(shè)置都可以在檢視面板中修改。物體結(jié)構(gòu)在物體內(nèi)部的組件將定義物體是什么以及做什么。將一個新的物體想成一個空的畫布,并且每一個組件都是一個不同畫筆。當你組合并設(shè)置不同的組件時,你就像在繪制你物體的行為。特定的組件,就像畫筆不同的顏色,可以在一起工作的很好。然而其他的一些組件就不能一起工作??梢酝ㄟ^使用組件(Component)菜單來向物體添加組件。對于組件的詳細信息可以參考組件部分此外,在檢視面板中所有的組件都會在它們的名稱旁邊顯示一個問號,單擊這個問號可以打開該組件的參考文檔。時間線(Timeline)視圖使用時間線(Timeline)視圖可以為當前選中物體創(chuàng)建動畫。Unity可以導(dǎo)入包含動畫的文件,但是你可以使用時間線視圖來制作基本的動畫而無需使用 3D動作軟件。時間線視圖將幫助你為物體制作動畫參考動畫部分調(diào)整視圖布局現(xiàn)在你已經(jīng)知道了所有不同的視圖,你可以重新布局它們布局下拉列表然你選擇或保存不同視圖布局嘗試選擇不同的布局?,F(xiàn)在,從下拉列表中選擇新布局(New Layout)并給它一個唯一的名稱。為了自定義布局,你需要分割(Split)和組合(Combine)視圖。Control-單擊或右鍵在兩個視圖的分割線上單擊,或者在任何視圖的控制欄上。當鼠標變成一個分割線時,你可以單擊并拖動鼠標來改變視圖的大小。一個完全的自定義布局你還可以將任何視圖切換為全屏模式。將你的鼠標移到視圖上并按下空格鍵(Spacebar),這將臨時昀大化當前視圖并隱藏所有其他視圖。這將允許你在更大的屏幕尺寸上查看更多的細節(jié)。再次按下空格鍵可以切換到普通視圖模式下。 2. 資源流程(Asset Workflow) 這里我們將解釋在 Unity中如何使用一個簡單的資源。這些步驟是通用的而且可以看作是一個基本操作的演示。在該例子中我們將使用 3D網(wǎng)格。創(chuàng)建原始資源使用任何 3D建模軟件創(chuàng)建你的資源。在我們的例子中我們將使用 Maya。導(dǎo)入當保存了你的資源后,你應(yīng)該將其保存到你的工程文件夾的資源(Assets)文件夾中。當你打開 Unity工程,這些資源將被檢測到并導(dǎo)入到工程中。當你查看工程視圖 (Project View)時,你將發(fā)現(xiàn)你保存的資源。導(dǎo)入設(shè)置如果你選擇了一個資源并單擊導(dǎo)入設(shè)置 (Import Setting)按鈕,將出現(xiàn)一個對話框,該對話框的選項隨著導(dǎo)入資源的不同而不同。向場景中添加資源從工程視圖中單擊并拖動網(wǎng)格到層次(Hierarchy)或場景視圖(Scene View)中即可將其添加到場景中。當你拖動一個網(wǎng)格到場景中時,你將創(chuàng)建一個擁有網(wǎng)格渲染組件 (Mesh Render Component)的物體。如果你導(dǎo)入的是紋理或聲音文件,你需要將其添加到場景中已有的一個物體上。將不同的資源放置在一起下面是一些常用資源之間的關(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è)是可以在場景中重用的一組物體和組件的集合。幾個相同的物體和通過同一個預(yù)設(shè)來創(chuàng)建,這些物體稱為實例。例如,創(chuàng)建一棵樹的預(yù)設(shè)將允許你在場景中不同的地方放置多個相同的實例。因為這些樹都與預(yù)設(shè)相關(guān),任何對預(yù)設(shè)的改變都將自動應(yīng)用到所有樹的實例上。因此如果你改變要改變網(wǎng)格,材質(zhì)或其他任何東西,你只需要在預(yù)設(shè)中改變一次,那么所有的繼承的實例樹都將改變。你也可以改變一個實例并使用 GameObject-Apply Changes to Prefab將這種改變應(yīng)用到所有相同的實例上。當你有一個包含多個組件或子物體層次的物體時,你可以制作一個頂層(或根)物體的預(yù)設(shè),并可重用整個物體集??梢詫㈩A(yù)設(shè)看作是物體結(jié)構(gòu)的藍圖。對于該藍圖來說所有的拷貝都是相同的。因此,如果藍圖被更新,那么它的所有實例也會相應(yīng)更新。這里有幾種不同的方式可以使你通過改變一個實例來改變整個藍圖。參考預(yù)設(shè)部分。為了從你場景中的物體上創(chuàng)建一個預(yù)設(shè),首先在工程視圖中創(chuàng)建一個新的預(yù)設(shè)。并命名,然后在場景中單擊你想用于創(chuàng)建預(yù)設(shè)的物體。拖動它到新的預(yù)設(shè)中,你將看到物體的名稱變成了藍色。這樣你就創(chuàng)建了一個可以重用的預(yù)設(shè)。更新資源你已經(jīng)導(dǎo)入,實例化并將資源連接到了預(yù)設(shè)?,F(xiàn)在當你需要編輯你的資源時,只要在工程視圖中雙擊它,此時將運行屬性應(yīng)用程序,在這里你可以做任何你需要的改變。當你更新它時,保存它。然后但你切換到 Unity,這個更新將被檢測到,并且資源將被重新導(dǎo)入。而資源到預(yù)設(shè)的連接還將存在。你將看到你的預(yù)設(shè)被更新了,這就是你需要知道的更新資源部分。僅僅需要打開和保存。 3. 創(chuàng)建場景(Creating Scenes) 場景包含所有的游戲物體。它們可以用來創(chuàng)建主菜單,不同的關(guān)卡,和任何其他東西。將不同的場景文件作為一個不同的關(guān)卡。在每個場景中,你將放置你的環(huán)境,障礙物和裝飾,實際上就是一點一點地搭建你的游戲。實例化預(yù)設(shè)使用上面章節(jié)中描述的創(chuàng)建預(yù)設(shè)(Prefab)的方法。你可以在此處得到更多的關(guān)于預(yù)設(shè)的信息。一旦你創(chuàng)建了預(yù)設(shè),你就可以簡單快速地得到一個預(yù)設(shè)的拷貝,稱為實例(Instance)。為了創(chuàng)建任何預(yù)設(shè)的一個實例,從工程視圖 (Project View)中拖動一個預(yù)設(shè)到層次或場景視圖中?,F(xiàn)在你就得到了一個預(yù)設(shè)拷貝的實例,你可以將其放置在任何你想要的位置上。添加組件和腳本當你選中任何預(yù)設(shè)或物體時,你可以通過使用組件(Components)來向其中添加一些額外的功能。參考組件獲取更多的信息。腳本(Scripts)也是組件的一種類型。選擇物體并從組件 (Component)菜單中選擇一個組件。你將看到組件顯示在物體的檢視(Inspector)視圖中。缺省情況下腳本也包含在組件(Component)菜單中。如果添加組件斷開了物體到預(yù)設(shè)的聯(lián)系,你可以選擇 GameObject-Apply Changes to Prefab來重新建立聯(lián)系。放置物體一旦你的物體體出現(xiàn)在場景中,你就可以使用視圖工具(View Tools)來定位它。此外你還可以使用位于檢視窗口中的變換(Transform)值來調(diào)整物體的位置和旋轉(zhuǎn),參考變換組件部分。相機相機就是你游戲的眼睛。每一個玩家都是通過一個或多個相機在場景中看東西的。你可以象普通物體一樣定位旋轉(zhuǎn)并父化相機。相機就是一個擁有相機組件的物體。因此它可以做任何普通物體能做的事情,還可以做一些相機特有的功能。當你創(chuàng)建一個新的工程時,標準的資源集中安裝了一些有幫助的相機腳本。你可以通過 Components-Camera-Control來找到它。當然相機還有一些其他的功能,參考相機組件部分。光照除了一些特殊的情況以外,你需要在大多的場景中添加光照(Lights)。有三種不同類型的光照,它們的功能有一些不同。重要的是它們添加氛圍和氣氛到你的游戲中。不同的光照可以完全改變你的游戲的氛圍,有效地使用光照是一個非常重要的主題。參考光照組件部分。 4. 發(fā)布(Publishing Builds) 在你創(chuàng)建你的游戲的時候,你可能會想知道當你發(fā)布并在編輯器之外運行的時候會是一個什么樣子。該部分就是解釋如果訪問發(fā)布設(shè)置(Build Setting)并解釋如何創(chuàng)建不同的游戲。通過 File-Build Settings菜單可以訪問發(fā)布設(shè)置。當你發(fā)布你的游戲的時候它將彈出一個可編輯的屏幕列表。發(fā)布設(shè)置對話框當你第一次打開該窗口時,它將顯示空白,如果在列表為空時發(fā)布游戲,只有當前打開的場景會被發(fā)布。如果你想快速發(fā)布一個測試場景文件,那就用一個空的場景列表來發(fā)布。同時發(fā)布多個場景也是非常容易的。有兩種方法添加場景。第一種方式是單擊添加打開場景 (Add Open Scene)按鈕,你將看到當前的場景出現(xiàn)在列表中。第二種方法就是從工程視圖 (Project View)中將場景文件拖動到列表中。注意,每一個場景都有一個不同索引號。Scene 0是第一個加載的場景。如果你想加載一個新的場景,在你的腳本中使用 Application.LoadLevel() 如果你已經(jīng)添加了多個場景文件,并需要重組它們,只需要在列表中單擊并拖動它們即可對它們進行排序。如果你想從列表中移出一個場景,選擇該場景并按 Command-Delete。這個場景將從列表中消失并將不會包含在發(fā)布中。當你設(shè)置好以后,選擇發(fā)布目標(Build target)并按下 Build按鈕。你可以從出現(xiàn)的標準保存對話框中選擇一個名稱和位置。當你單擊保存時, Unity將快速的發(fā)布你的游戲。非常簡單。選中壓縮紋理 (Compress Texture)復(fù)選框,將會壓縮工程中所有的紋理。你只需要壓縮一次,但是第一次壓縮將花費一些時間。如果你在壓縮后更新了資源,你將不得不重新壓縮。你也可以在導(dǎo)入的時候啟用紋理壓縮著可以在 Unity-Preferences菜單中設(shè)置。選中腳本調(diào)試 (Strip Debug Symbols)復(fù)選框?qū)⒁瞥鲈诎l(fā)布中出現(xiàn)的調(diào)試信息。這將減小發(fā)布文件的大小并可以實現(xiàn)優(yōu)化的目的。Alpha或 betas版應(yīng)該禁用這個選項已達到調(diào)試的目的。在昀后發(fā)布 release版的時候你應(yīng)該選中該復(fù)選框。流式網(wǎng)頁播放流式網(wǎng)頁播放器是 Unity2.0的新特性。這將允許你的網(wǎng)頁播放器在 Scene0完全加載后開始播放。如果你的游戲有十關(guān),強制玩家等待所有的關(guān)卡都下載完成再開始游戲是沒有意義的。當你發(fā)布一個流式網(wǎng)頁播放器時,場景需要的資源需要根據(jù) Secne文件的順序來下載。當所有包含在 Secne0中的資源完全下載后,就開始播放了。簡單的來說,流式網(wǎng)頁播放器將使你的游戲盡可能快地播放。你需要確定的唯一一件事就是確認在你開始播放前下一等級已經(jīng)加載完成了。通常情況下,對于一個非流式播放器,你可以使用如下的代碼來加載關(guān)卡: Application.LoadLevel(“l(fā)evelName”); 對于一個流式的網(wǎng)頁播放器,你必須首先檢查該關(guān)卡是否已為已完成。這個可以通過 CanStreamedLevelBeLoaded()函數(shù)來來做。下面為代碼: var levelToLoad = 1; function LoadNewLevel () if (Application.CanStreamedLevelBeLoaded (levelToLoad) Application.LoadLevel (levelToLoad); 如果你想在播放器中顯示下載進度,你可以通過 GetStreamProgressForLevel()函數(shù)來讀取進度。發(fā)布過程發(fā)布過程將首先放置一個空的游戲應(yīng)用的副本到你指定的位置。然后它將使用發(fā)布設(shè)置中的場景列表,每次在編輯器中打開一個,優(yōu)化它們,并將它們整合到應(yīng)用程序包中,同時它將考慮所有包含在場景中的資源并將這些數(shù)據(jù)存儲在應(yīng)用程序包的不同文件中。場景中任何被標記為”EditorOnly”的物體將不會被發(fā)布。這對于調(diào)試那些不需要包含在昀終游戲中的腳本是非常有用的。當一個新的關(guān)卡被加載,所有前一個關(guān)卡的物體都將被銷毀。為了避免這種操作,你可以使用 DontDestroyOnLoad()函數(shù)在任何你不想銷毀的物體上。可以使用它來保持音樂的一直播放,或者用于游戲腳本控制器以便保持游戲狀態(tài)和進度。當新的關(guān)卡下載完成后,一個 OnLevelWasLoaded()消息將發(fā)送到所有被激活的物體上。對于如何創(chuàng)建擁有多個場景的游戲,例如,一個主菜單,一個積分屏,和一個真實的游戲關(guān)卡,參看腳本教程部分。預(yù)加載發(fā)布將自動預(yù)加載所有場景中的資源。唯一例外的是 Scene0。只是因為第一個場景通常是一個閃屏,通常需要盡可能快地顯示它。為了確保你的所有內(nèi)容都是預(yù)加載的,你可以創(chuàng)建一個空的場景調(diào)用 Application.LoadLevel(1)。在發(fā)布設(shè)置中確定這個空場景的索引為 0,所有的后續(xù)關(guān)卡將被預(yù)加載。 5. 教程(Tutorials) 這些教程可以讓你一步一步地建立真正的工程。對于新手來講,建議首先進入 GUI精華和腳本精華部分。二、 場景搭建 (Building Scenes) 該部分將解釋用于創(chuàng)建游戲場景的核心元素。 1. 游戲物體(GameObject) 在 Unity中昀重要的就是游戲物體。理解什么是游戲物體如何使用它是非常重要的。該部分就將解釋這個概念。什么是游戲物體?在你的游戲中的任何東西都是游戲物體。然而,游戲物體自身并不能做所有的事情。在它們成為角色,環(huán)境或者特定的效果之前它們需要特定的屬性。但是物體中的每一個都會做許多不同的事情。如果每一個物體都是一個游戲物體,我們怎么從一個靜態(tài)房間中區(qū)分一個具有強大交互能力的物體?是什么使得游戲物體相互不同呢?答案就是游戲物體是一個容器。他們是一個空的可以容納不同塊的盒子,而這些塊組成了一個帶有光照貼圖的島或是一個物理驅(qū)動的汽車。為了真正理解游戲物體,你需要理解這些塊;這些塊被稱為組件(Components)。根據(jù)你要創(chuàng)建的物體的不同,你可以添加不同組件到一個游戲物體中。將游戲物體想象為一個空的烹調(diào)罐,組件為不同的組成游戲的配料。游戲物體與組件的關(guān)系現(xiàn)在我們知道游戲物體包含組件。我們將通過使用昀常用的組件變換組件(Transform)來討論這兩者之間的關(guān)系。打開任意一個場景,創(chuàng)建一個新的游戲物體(使用 Shift-Command-N),選擇他并查看檢視面板(Instpector)空物體的檢視面板你可能注意到了這里有兩個完全不同的部分?!盙ameObject”和”Transform”。屬于游戲物體部分的是關(guān)于游戲物體自身的信息。這里只有物體的名稱。變換部分顯示變換組件的信息。當你創(chuàng)建一個新的物體時,將會自動包含一個變換組件。所有的物體都會有一個變換組件。在 Unity中你不可能創(chuàng)建一個沒有變換組件的物體,變換組件為所有物體提供了獨特的功能。變換組件變換組件是昀重要的組件之一。它定義了游戲物體在場景視圖中的位置,旋轉(zhuǎn),和縮放。如果游戲物體沒有旋轉(zhuǎn)組件,那么它將不會存在世界中。參考變換組件部分。變換組件也可以使用一個被稱為父子化(Parenting)的功能,這個功能被編輯器(Unity Editor)利用并且是使用游戲物體昀關(guān)鍵的部分。父子化父子化的意思是你可以使一個游戲物體的變換值完全依賴于另一個不同游戲物體。簡單來說,就是一個物體隨著另一個物體移動。當一物體是另外一些物體的父(Parent)物體時,這個物體的旋轉(zhuǎn)將影響所有的子(Child)物體。你可以在層次視圖 (Hierarchy View)中通過拖動任何物體到另一個物體上來創(chuàng)建一個父。這將在兩個物體之間創(chuàng)建父子關(guān)系。這種功能非常類似于文件夾樹的功能,一個游戲物體包含在另一個游戲物體中。需要指出的是所有子物體的變換值都是相對于父物體的,這個被稱為局部坐標(Local Coordinates)。通過腳本你可以訪問全局坐標(Global Coordinates)和局部坐標。一個游戲物體可以有任意多個子物體,但是只能有一個父物體。子物體也可以是其它物體的父物體。你可以很容易的在層次視圖中分辨一個物體是不是一個父物體。如果在它名稱的左邊有一個箭頭,那么它就是一個父物體。一個真實的父子層次樹,所有帶有箭頭的物體都是父物體記住所有的父子化的功能都是通過游戲物體的變換組件執(zhí)行的,而不是游戲物體自身。游戲物體-腳本關(guān)系當你創(chuàng)建一個腳本(script)并將其附加到一個游戲物體上時,這個腳本將在檢視面板中作為一個組件顯示。這是因為當它們被保存時腳本就變成一個組件。從技術(shù)角度來說,腳本是作為組件的一種來編譯的,就像其它組件一樣。任何在腳本中申明的公有變量都將在游戲物體的檢視面板中顯示為可編輯或可連接。編寫腳本的時候,你能夠直接訪問任何游戲物體類的成員。你可以在這里看到一個游戲物體類的成員列表。如果任何一個類作為一個組件附加在一個游戲物體上,你就可以在腳本中使用成員名來直接訪問這個組件。例如鍵入 transform等同于 gameObject.transform。前面的gameObject是編譯器自動加入的,除非你要指定一個不同的物體。使用 this可以訪問當前的腳本組件。使用 this.gameObject可以訪問該腳本所依附的游戲物體,當然你可以簡單的使用 gameObject來訪問此游戲物體。邏輯上來說,鍵入 this.transform與 tansform是相同的,如果你想訪問一個組件而該組件并沒有作為一個游戲物體成員包含在其中,你需要使用 gameObject.GetComponent() 2. 使用組件(Using Components) 組件是游戲中一個物體的行為和核心。它們是游戲物體的功能性模塊。如果你還不理解游戲物體和組件之間的關(guān)系,請參考游戲物體部分。一個游戲物體包含許多不同的組件。缺省情況下。所有的游戲物體都包含一個變換(Transform)組件。這是因為變換表示物體的位置,旋轉(zhuǎn)和縮放。沒有變換組件,游戲物體將不會有位置。嘗試創(chuàng)建一個空的游戲物體。單擊 GameObject-Create Empty菜單項。選擇新游戲物體,并查看檢視面板。每一個空的游戲物體都有一個變換組件可以使用檢視面板來查看都有什么組件附加在游戲物體上。但一個組件被加入或刪除的時候,檢視面板將顯示當前附加的組件??梢允褂脵z視面板來改變?nèi)魏谓M件的屬性 (包括腳本)。添加組件可以通過組件菜單為當前的游戲物體添加一個組件。嘗試添加一個剛體(Rigidbody)到剛創(chuàng)建的物體上。選擇該物體并從菜單中選擇 Component-physics-Rigidbody?,F(xiàn)在你將會發(fā)現(xiàn)剛體屬性顯示在檢視面板中,如果在該物體被選中的情況下按下播放鍵(Play)你將會有驚喜的發(fā)現(xiàn)。注意剛體是如何在一個空物體上添加功能的。附加了剛體組件的空物體可以附加任意數(shù)量的組件到一個游戲物體。一些組件可以與其他一些組件一起工作。例如,剛體可以和任何碰撞物一起工作。剛體通過 Ageia PhysX物理引擎控制變換,并且碰撞器允許剛體與其它的碰撞器碰撞和交互。一個不同的組件組合例子是一個粒子系統(tǒng) (Particle System)。它們使用一個粒子發(fā)射器 (Particle Emitter),粒子動畫 (Particle Animator)和粒子渲染器(Particle Renderer)來創(chuàng)建一組移動的粒子??梢酝ㄟ^點擊位于檢視面板頭部的問號訪問組件的參考頁。編輯組件一個組件昀重要的方面是其可擴展性。當你添加一個組件到一個物體上時,它有不同的可以調(diào)整的值或者屬性(Properties),也可以在游戲中通過腳本來調(diào)整它。有兩種不同類型的屬性:值(Values)和引用(References)。下圖中是一個具有音頻源 (Audio Source)組件的空游戲物體。在檢視面板中所有音頻源的值都是缺省的。這個組件包含一個單一的引用屬性和七個值屬性。音頻剪輯 (Audio Clip)是一個引用屬性。當這個音頻源開始播放時,它將嘗試播放 Audio Clip屬性所引用的音頻文件。如果沒有添加引用屬性,將會出現(xiàn)一個錯誤因為沒有音品將被播放。你必須在檢視面板中引用音頻文件。你可以非常簡單的從工程視圖中將音頻文件拖動到引用屬性中。現(xiàn)在一個音效文件在音頻剪輯屬性中被引用組件可包含任何其它類型組件的引用,文件或游戲物體。你只需拖動適當?shù)囊玫竭@個屬性上。引用類型是非常有用和強大的,尤其是在使用腳本時。參考腳本教程。音頻剪輯中剩下的七個都是值屬性。都可以通過單擊并按下 Enter鍵來調(diào)整它們。使用鍵盤輸入值,并按 Enter保存它。你也可以通過使用 option-或 right-click或拖動數(shù)字屬性來快速滾動這些值。音頻剪輯中的值屬性都是數(shù)字,但是一些屬性也可以是字符串。例如,文本網(wǎng)格(Text Mesh)組件包含一個文本(Text)屬性,這個屬性可以接受字母數(shù)字字符。一些值可以包含字符,例如文本網(wǎng)格中的 Text屬性測試屬性當你的游戲處在播放模式 (Play Mode)中時,你可以在游戲物體的檢視面板中修改它的屬性。例如,你或許想試驗不同的跳躍高度。如果你在一個腳本中創(chuàng)建了一個跳躍高度 (Jump Height),你可以進入播放模式,改變這個值,并按跳躍鍵查看結(jié)果。然后不需要退出播放模式就可以再次改變這個值。當你退出播放模式時你的屬性值將恢復(fù)到播放前的值,因此,你不會丟失任何工作。這個工作方式,提供給你難以置信的方便來試驗,調(diào)整,精簡你的游戲而不必要花費大量的時間。移除組件如果你想移除一個組件,在檢視面板的頭部使用 option-或右擊然后選擇移除組件(Remove Component)?;蛘吣憧梢詥螕粑挥诮M件頭部問號旁邊的選項圖標。所有的屬性值都將丟失并且是不可恢復(fù)的。因此在移除組件前請確認你要這樣做。組件-腳本關(guān)系盡管腳本(Scripts)看起來都與組件不同,事實是腳本是組件的一種類型。它是一種你自己創(chuàng)建的組件。你可以定義能夠顯示在檢視面板中的成員,并且它將執(zhí)行你寫出的任何功能。腳本組件有很多組件可以通過任何腳本直接訪問。例如,如果你想訪問變換組件的變換(Translate)功能,你只需要使用 transform.Translate()或 gameObject.transform.Translate()。因為所有的腳本都是附加在游戲物體上的,所以當你寫 transform的時候就暗示要訪問當前腳本所在的物體的變換組件。當然這兩者完全等價的。使用 GetComponent() 有許多組件不能成為一個游戲物體類的成員。因此你不能隱式訪問它們,必須顯式訪問它們。通過調(diào)用 GetComponent(“component name”)并存儲一個引用到結(jié)果中。當你需要引用附加到該游戲物體上的其它腳本時這個方法是昀常用的。假設(shè)你在寫腳本 B并且你想做一個腳本 A的引用,而這兩者是附加在相同的游戲物體上的。你可

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論