資源描述:
《從服務(wù)器端獲取資源動態(tài)加載到場景》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、[unity3d]從服務(wù)器端獲取資源動態(tài)加載到場景分類:編程語言/C語言/文章我們的游戲制作完發(fā)布出去提供給玩家,為了給玩家?guī)砀玫挠螒蝮w驗,要做各種的優(yōu)化以及設(shè)計,首先,游戲資源的加載就是一個非常重要的方面(尤其是網(wǎng)頁游戲)。由于我們的游戲資源比較大,不能一下全部加載出來,如果是這樣,可能會造成玩家長時間的等待。所以我們應(yīng)該采取動態(tài)加載的方式,讓玩家在玩游戲的過程中來一點一點從服務(wù)器加載游戲資源。要實現(xiàn)這樣的效果,首先就必須要制作用于一點點加載的游戲資源。(注:本文只是談及這些游戲資源的制作和下載,關(guān)于游戲運行中的動
2、態(tài)加載不做討論)(再注:本文涉及到的代碼都是以C#語言來編寫的)開發(fā)環(huán)境:Windows7Unity3D3.5.1f2本文中將會涉及到以下的內(nèi)容:1、UnityEditor命名空間2、Editor模式下窗口制作3、導(dǎo)出功能的具體實現(xiàn)4、資源的下載5、下載后使用1、UnityEditor命名空間這個命名空間下的類是在Unity的編輯模式下使用的,我們可以用它來制作各種小工具來輔助開發(fā),提高開發(fā)效率。這里的所有的類都不能在Unity的運行時里使用。只能在編輯器下使用,并且在使用他們的時候還必須要放到項目Project視圖下的
3、Editor文件夾中。需要注意一點的就是,我們的項目代碼里如果有使用到UnityEditor命名空間時,在項目的最后編譯是不能通過的,必須要移除他們。我們來看一個我們即將使用到的一個Attribute:MenuItem是UnityEditor命名空間下的一個屬性標志,它可以定義出一個菜單條目,并添加在Unity編輯器的菜單欄中,語法:[csharp]viewplaincopy1.[MenuItem(“Tools/Export”)]我們來新建一個工程看一下效果(具體創(chuàng)建步驟這里真的不說了)(注:我的項目中加了很多裝飾性的東
4、西,這里就不一一說明怎么實現(xiàn)了哈)完成之后,先在Project下創(chuàng)建Editor文件夾并創(chuàng)建一個腳本文件,輸入以下內(nèi)容:[csharp]viewplaincopy1.usingUnityEditor;2.usingUnityEngine;3.usingSystem.Collections;4.5.///6.///author:qyxls7.///8.publicclassExportTools:MonoBehaviour9.{10.[MenuItem("Tools/Export")]
5、11.staticvoidExecute()12.{13.Debug.Log("Menuisselected!!");14.}15.}當我們點擊菜單欄上的對應(yīng)菜單選項:ToolsàExport時,菜單項會調(diào)用靜態(tài)的Execute()方法,即可在Console面板中打印出”Menuisselected”。這里要注意兩點:1、引入UnityEditor命名空間。2、MenuItem要調(diào)用的方法需要是static的。關(guān)于UnityEditor的更多詳細內(nèi)容,請參照官方文檔,這里不做重點講解。2、Editor模式下窗口制作要制作
6、一個小工具,提供出一個友好界面是很有必要的。UnityEditor下的類可以很方便的完成這一需求。我們通過這些類,可以實現(xiàn)各種不同的控件:怎么樣,還算豐富吧?這些控件的具體實現(xiàn)我不想說,請自行查看API吧。這里我還是遵循本文的主旨,圍繞本文的中心思想(本文我們是要導(dǎo)出資源到服務(wù)器,并在游戲中下載這個資源過來使用)實現(xiàn)一個界面。用例描述:導(dǎo)出場景中的一個模型,并帶著默認材質(zhì),如果該模型有多個可替換的貼圖,也把這些貼圖作為該模型的資源一并導(dǎo)出到一個資源包中。按照這個需求,我猜想界面應(yīng)該是這樣的:一個導(dǎo)出模型的口,一個提供可選
7、貼圖數(shù)量的口,根據(jù)用戶輸入的可選數(shù)量,給提供出對應(yīng)的貼圖導(dǎo)出口,最后填寫完畢之后有一個按鈕用于導(dǎo)出交互。,不好意思,這哪里是猜想,我其實早就寫好了。其實也沒騙你了,我在寫之前是猜想的!要實現(xiàn)上面這個窗口,我該怎么做呢?首先,定義一個繼承EditorWindow的類,然后,重寫OnGUI方法即可。我們這里在之前的代碼基礎(chǔ)上做修改添加:[csharp]viewplaincopy1.usingUnityEditor;2.usingUnityEngine;3.4.///5.///author:qyxls6.//
8、/7.關(guān)閉-關(guān)閉-publicclassExportTools:"color:#ff0000;">EditorWindow8.{9.[MenuItem("Tools/Export")]10.staticvoidExecute()11.{1