1. Unity3d 使用Assetbundle合並項目的幾點注意
Unity3d中動態資源讀取,除了Resources.Load方式。還有就是Assetbundle。
Assetbundle的各方面介紹,這里就不在贅述,網上搜搜就一大片。但是,是不是什麼東西都能被打成Assetbundle呢?
基本上,引用到的資源,都能被打成Assetbundle。但是腳本和shader卻不一樣,雖然腳本和shader也能被導入Assetbundle。但是卻不能把源文件導入(如果Assetbundle中存的是腳本的源文件,那也就沒那麼多熱更新解決方案了)。最簡單的驗證方法,把一個項目的一個場景,導出Assetbundle,另一個項目讀取這個Assetbundle運行。會發現資源都導入了,卻沒有執行的腳本。
因此,如果兩個項目,想通過Assetbundle方式,來合並兩個項目,那就必須把腳本也拷到要被導入的項目中。兩個項目腳本合並,難免出現重名的腳本,重名的類。為了解決這個,每個項目,定一個唯一的namespace。如果項目開始的時候就定好了,那還好辦,如果後期合並,前期都沒加過。那就只能自己寫個Editor腳本,批量加上。
Unity項目中,難免使用一些全局的設置,比如,Physic重力設置,Tag和Layer這些。重力還好辦,項目運行起來,還能通過腳本修改。但是Tag,Layer卻不行。只能想辦法進行合並。
Unity中,Tag只能通過string修改。但是,導成Assetbundle之後,其存儲是index。所以要麼在合並Tag的時候,要麼批量修改,要麼寫個映射。當然,最好的方式是,項目統一用一套Tag。
Layer相比於Tag要簡單許多,Layer可以通過int修改。Unity最大有32個Layer,即使你不添加Layer,也能通過修改Layer的index來使用。那麼只要工程中定義全局使用的Layer即可
由於項目的資源都是Assetbundle,那麼打包的時候,Unity會自動幫你精簡項目。所以,Shader和腳本,就有可能被精簡掉。
所以保險起見,吧項目中所有的Shader全部添加到
Unity的腳本也得進行相應的設置
2. 我有兩個UNITY 3D 場景文件,怎麼合並
把地形的導出高度圖,然後在新建的地形裡面讀取高度圖
3. unity如何將兩個不同工程的場景弄倒一起
將其中一個工程的場景打包導出
(右鍵場景,exprot package)
,在另一個工程裡面導入
(菜單 --- assets --- import package --- custom package)注意就是 不要有中文路徑,不然會出錯:)
希望對你有用
4. unity 3d 場景合並
把A 做成 Prefab , 然後打開B場景 把 Prefab 拖入場景里就就好了~