温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Unity3D 5.0+动态加载模型和对应Light Map方法的示例分析

发布时间:2021-12-16 14:05:03 来源:亿速云 阅读:300 作者:小新 栏目:大数据

这篇文章主要介绍了Unity3D 5.0+动态加载模型和对应Light Map方法的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

前提必要:

1、需要有Mesh Renderer的静态模型

2、需要有符合模型的Light Map

3、关闭Lighting 中的Auto Build

Unity3D 5.0+动态加载模型和对应Light Map方法的示例分析

操作步骤:

1、导入Light Map并修改格式

Unity3D 5.0+动态加载模型和对应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;

Light Map Index如图:

Unity3D 5.0+动态加载模型和对应Light Map方法的示例分析

注意事项:

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方法的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI