當前位置:編程學習大全網 - 源碼下載 - unity3d開發2d遊戲中Assetbundle有什麽作用

unity3d開發2d遊戲中Assetbundle有什麽作用

在unity3d開發2d遊戲中,Assetbundle 是Unity Pro提供提供的功能,它可以把多個遊戲對象或者資源二進制文件封裝到Assetbundle中,提供了封裝與解包的方法使用起來很便利。在如下幾個方面的作用明顯:

1.預設

Assetbundle可以將Prefab封裝起來,這是多麽方便啊! 而且我也強烈建議大家將Prefab封裝成Assetbundle,因為Prefab可以將遊戲對象身上帶的遊戲遊戲組件、遊戲腳本、材質都封裝在壹起。當從服務器上將Assetbundle下載以後直接Instantiate就可以放入遊戲中。

試想壹下,如果只能將原始的二進制資源文件放在服務器上下載,當資源文件下載完畢後,需要動態的創建遊戲對象、然後動態的將腳本綁定在遊戲對象、動態的將貼圖賦予遊戲對象等等各種動態的操作。。所以強烈建議使用Prefa,不解釋!!!!!

另外,我在舉個例子,因為模型有可能會帶很多動畫文件,那麽這樣壹組模型資源就可能是多個FBX 文件 和 若幹png貼圖文件 材質文件。這時我只需要把原始模型放入Prefab中,它就會包含這個模型的所有組件、甚至包括它的動畫資源、貼圖。那麽如下圖所示,Mode就是模型的Prefab文件,那麽我僅僅只需要把Mode這個預設打包成Assetbundle即可。 當我在服務器上下載這個Assetbundle並且載入遊戲中就可以直接使用了,切換動畫、換貼圖都可以。。

2.二進制文件

也並不是Assetbundle中全都要用預設,Assetbundle它也可以將二進制文件直接封裝在裏面,比如圖片、聲音、文本信息等等。

3.場景文件

在Unity中可以將壹個場景保存在Scene中,Scene就會包含這個場景中的所有,那能不能把Scene也封裝成Assetbundle中?答案是能,但是它不能在移動平臺上用,因為移動平臺上是不能更新腳本的,換句話來說就是即使將腳本綁定在Prefab中,然後下載Assetbundle後,所有腳本是不會執行的,後面說另外壹種巧妙用法。

4.移動平臺

上面MOMO已經將Assetbundle 的使用原理大致介紹了壹下 ,我們在談談移動平臺。腳本不能更新是移動平臺下最大的傷,這就意味著開發者無法繞過App store和 google Play這種在線商店升級應用程序。唯壹能做到的就是更新資源、舉個例子,遊戲中在處理版本升級時,壹般會有個大版本號和壹個小版本號,大版本號就是 2.0、3.0這種 版本需要在AppStore中更新,大版本主要是升級遊戲腳本,然後當小版本號,比如2.0.1 或2.0.2這種只是更新遊戲中的資源,通過自己遊戲的服務器就可以完成,通過Assetbundle在自己服務器上下載,然後適應在遊戲中。如果非要更新腳本,或不得不更新腳本那麽只能在Appstore或者google Play去更新大版本。

移動平臺上不能更新腳本,那麽Prefab上綁定的腳本怎麽辦?在任何平臺上都可以把腳本添加到Prefab上,然後打包成Assetbundle,只有移動平臺上有點特殊,比如將Test.cs這條腳本綁定在Prefab中,最後程序通過服務器下載這個Assetbundle ,當載入工程中這條腳本是不會被執行的。

但是如果本地工程有Test.cs這條腳本,那麽Unity會自動將這條腳本綁定在下載的Prefab中,並且他們執行的非常好。如果本地工程中沒有Test.cs這條腳本,那麽Prefab上的腳本是永遠都不會執行的。有時我們會在腳本中寫壹些Public的變量,有可能不同的Prefab上綁定的是相同的腳本,只是Inspector 腳本中的public參數不同。別擔心這壹點Assetbundle 中的Prefab也是沒問題,所以說只要大版本中的腳本沒問題,在小版本中只更新遊戲資源是壹點問題都麽有的。

5.移動優化

之前我們說過可以將遊戲中的某個遊戲對象封裝成Assetbundle,也可以將遊戲中的整個場景也封裝成Assetbundle。但是我認為需要巧妙的使用封裝場景,因為場景中肯定有很多公用的模型,如果打包場景的話那麽內存與size就是 公用模型的size * N個場景,想想其實挺恐怖的。其實我們可以巧妙的使用,首先把場景中公用的部分和私有的部分統統放入Unity, 然後烘培整個場景。 當場景烘培完畢後把公用的模型部分在拿出去,場景只只保留私有的模型。還可以做壹個工具將公用模型在場景中的坐標保存在XML中(每個場景文件會對應壹個公用模型的XML信息),最後在將公用的模型分別封裝在別的Assetbundle中。

服務器上提供每個場景的Assetbundle ,和公用模型的Assetbundle,壹般公用模型的Assetbundle可以放在常駐內存中(可能使用頻繁、根據項目的不同而定)場景Assetbundle下載完畢後,現載入場景然後在根據場景對應的XML信息將公用模型部分動態的在添加到場景中,這樣就完成了壹個場景的構建。

  • 上一篇:Opencv固件源代碼
  • 下一篇:重慶新聞頻道
  • copyright 2024編程學習大全網