您好,登錄后才能下訂單哦!
這篇文章主要介紹了Unity3D 5.0+動態加載模型和對應Light Map方法的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
1、需要有Mesh Renderer的靜態模型
2、需要有符合模型的Light Map
3、關閉Lighting 中的Auto Build
1、導入Light Map并修改格式
2、使用腳本為場景加載導入的Light Map到Light Map Settings
2.1、Light Map不能直接被加載到Light Map Settings 所以需要在腳本中創建一個Light Map Data數組來儲存場景當前狀態下需要用到的所有Light Map并賦予給Light Map Settings
//Light Map數組
Texture2D[] DayNear;Texture2D[] DayFar;
//Light Map Data數組
LightmapData[] dayLightMaps;
//把LightMap 加入Light Map Data數組
dayLightMaps = new LightmapData[DayNear.Length];
for (int i=0; i{
dayLightMaps[i] = new LightmapData();
dayLightMaps[i].lightmapNear = DayNear[i];
dayLightMaps[i].lightmapFar = DayFar[i];
}
//更改當前場景Light Map狀態
LightmapSettings.lightmaps = dayLightMaps;
2.2、Light Map在Light Map Data中的順序會影響到Light Map Index 所以最好加入自動排序命令 如不加則需要手動排序
using System.Linq;
DayNear = DayNear.OrderBy(t2d => t2d.name, new NaturalSortComparer()).ToArray();
2.3、Light Map分為遠近(lightmapNear、lightmapFar )兩種 如Light Map只有一張則需將其同時貼在兩種類型上
3、通過Light Map Index指定靜態模型使用某張Light Map 編號可在Lighting中的Lightmaps查詢到
transform.GetComponent<<span>MeshRenderer>().lightmapIndex = 0;
1、Light Map不可被Light Map Settings單獨調用 需要更替必須存入Light Map Data后賦予給Light Map Settings
2、某單個靜態模型需要動態調用時如果當前Light Map Settings
中已有其所使用的Light Map 則只需指定Light Map Index即可 無需更替Light Map Settings
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Unity3D 5.0+動態加載模型和對應Light Map方法的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。