Unity Lightmap动态加载研究
什么情况下需要Lightmap?
移动平台上目前暂时还不能开实时光影效果,会卡成幻灯片。所以就需要将光影烘焙到贴图上。
什么情况下需要动态加载Lightmap?
1.当项目抛弃了Unity的多场景模式,也就是说整个项目只有一个scene,资源全部都是以AssetBundle的形式动态加载。
资源全部由自己来加载和卸载。加载出来的资源,需要设置LightmapIndex和LightmapScaleOffset。
2.根据时间变换,游戏中需要切换白天,黑夜的效果。也就是动态切换两张烘焙贴图。
网上的资料都是4.6版本或者之前的。
参考:http://blog.sina.com.cn/s/blog_697b1b8c0101frao.html
我测试了之后,是没有问题的。
步骤:
1.美术提供烘焙好后的场景
(设UV2,自己生成或者U3D勾选导入设置面板生成的都可以,设静态GAMEOBJECT烘培LIGHTMAP)
2.导出LightmapData,和每一个GameObject的LightmapIndex,LightmapScaleOffset
可以记录到Json,Xml或者Unity提供的ScriptObject
3.打包资源AssetBundle
(包括场景prefab,记录Lightmap信息的SceneLightmapData.asset,烘焙出来的贴图)
4.加载AssetBundle,实例化,重新赋予LightmapIndex,LightmapScaleOffset
Unity3d中ScriptableObject是一个非常有用的类,它可以帮助开发者存储一些希望保存的在运行时用到类的实例数据到文件里面。
我这里就用这种方式来记录Lightmap信息。

测试:

但是Unity5.x版本不能成功。
不知是我没找到方法,还是Unity以后会解决这个问题。
只是当下只能放弃动态加载的方式,只能直接场景打包,由U3D自行处理和Lightmap的关系。
测试工程:
链接:http://pan.baidu.com/s/1boxUT5d 密码:28kh
- 本文固定链接: http://www.shihuanjue.com/?p=218
- 转载请注明: 乔 2015年12月05日 于 是幻觉 发表
Unity Lightmap动态加载研究的更多相关文章
- 关于Unity里动态加载图片
Resources.Load 使用该方法可以动态加载资源 过程: 1.首先需要在Project面板里创建一个名为Resources的文件夹(名字必须是这个 不能写错啊) 2.把要加载的游戏对象放到该目 ...
- Unity www动态加载网上图片
一. 1.新建一个UGUI的Button,删掉它的Image组件,添加一个Raw Image组件.如图: 由于删除了Image组件,所以画圈的位置是空的,运行后会自动把Raw Image添加到那里. ...
- Unity中 动态加载 Resources.Load()和Asset Bundle 的区别
版权声明:本文为博主原创文章,未经博主允许不得转载. 初学Unity的过程中,会发现打包发布程序后,unity会自动将场景需要引用到的资源打包到安装包里,没有到的不会跟进去.我们在编辑器里看到的Ass ...
- Unity 利用UGUI打包图集,动态加载sprite资源
今天做了一个UI界面,这个界面是好友界面,该界面上有若干个好友item. 需要对每个tem的头像对象(image)动态显示对应的头像.尝试利用UGUI的图集来加载,具体实现如下: 1.首先,需要知道S ...
- Unity动态加载和内存管理(三合一)
原址:http://game.ceeger.com/forum/read.php?tid=4394#info 最近一直在和这些内容纠缠,把心得和大家共享一下: Unity里有两种动态加载机制:一是Re ...
- ExtJs中动态加载机制研究(转)
觉得写的太好了,怕弄丢了,转一下:http://extjs.org.cn/node/659 昨天我们team对于extjs的动态加载机制做了些深入研究,这里先share下controller加载的结果 ...
- Unity使用脚本进行批量动态加载贴图
先描述一下我正在做的这个项目,是跑酷类音游. 那么跑酷类音游在绘制跑道上的时候,就要考虑不同的砖块显示问题.假设我有了一个节奏列表,那么我们怎么将不同的贴图贴到不同的砖块上去呢? 我花了好几个小时才搞 ...
- Android之Android apk动态加载机制的研究(二):资源加载和activity生命周期管理
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/23387079 (来自singwhatiwanna的csdn博客) 前言 为了 ...
- Unity学习笔记(5):动态加载Prefab
第一种方法,从Resources文件夹读取Prefab Assets/Resources文件夹是Unity中的一个特殊文件夹,在博主当前的认知里,放在这个文件夹里的Prefab可以被代码动态加载 直接 ...
随机推荐
- 探索ASP.NET MVC框架之控制器的查找与激活机制
引言 前面一篇博文我们介绍了MVC框架的路由机制,我们知道一个URL请求如何从ASP.NET处理管线到达了IHttpHandler实例(MvcHandler).今天我们从MvcHandler来进行下一 ...
- maven install时报错Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile
首先检查父项目,子项目的jdk版本是否一致,编码格式是否一致我的问题就错在了编码格式上,父项目用的是UTF-8,子项目新建的,默认GBK这时,使用maven install命令出错 提示:[INFO] ...
- php数组函数分析--array_column
array_column 官方地址:array_column array_column 只能在 PHP版本5.5以上的运行,5.3是不支持这个函数的.如果5.3使用会报: Fatal error: C ...
- Android之layout_weight解析
我们先来看以下这段Android布局代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/androi ...
- 10款最好的 Bootstrap 3.0 免费主题和模板
Twitter Bootstrap 框架已经广为人知,用于加快网站,应用程序或主题的界面开发,并被公认为是迄今对于Web开发的最有实质性帮助的工具之一.在此之前的,各种各样的界面库伴随着高昂的维护成本 ...
- PHP同时上传“多个”文件示例,并格式化$_FILES数组信息
方法1: 在html表单,放置多个文件选择框, 使用数组名作为组件的名字,如下: <form action="upload.php" method="post&qu ...
- jquery 扩展插件方法
分析插件jquery.countdown.js (function($) { $.fn.countdown = function(options) { // default options var d ...
- 2.4使用属性在 ASP.NET Web API 2 路由创建一个 REST API
Web API 2 支持一种新型的路由,称为属性路由.属性路由的一般概述,请参阅属性路由 Web API 2 中.在本教程中,您将使用属性路由创建一个 REST API 集合的书.API 将支持以下操 ...
- PHP之autoload理解
举个例子就可以看懂了: 同一目录中有2个文件index.php和test.php,在test.php中定义一个test类. test.php <?php class test{ public f ...
- IE 中单元格的 colspan 属性在某些情况下会影响 TABLE 元素的自动布局
今天在写一个jsp页面时,遇到一个如下的问题:在一个table中写了如下内容,table中定义了4列,在firefox中能正常显示,而在ie8中,显示不正常, 如下如图1:第二,三,四列宽度发生变化, ...