unity3d lightmap贴图加载、替换、切换

unity中烘过图的场景很难做lightmap的平滑过渡,只能实现按钮的切换。难点是多套lightmap的加载,还有如何替换。

  步骤:

  1.创建个ui

<ignore_js_op> 

 

<ignore_js_op> 

  3.编辑js

[AppleScript] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
var lightmapDay:Texture2D[];//第一套图
 
var lightmapNight:Texture2D[];//第二套图
 
private var lightDataFirst:LightmapData[];//第一套图的数据结构
 
private var lightDataSecond:LightmapData[];//第二套图的数据结构
 
private var ok:boolean=true;//切换开关
 
private var indexnum:int;//每套图的数量。注意两套图要一样多,并且序号要一致
 
function Start () {
 
//初始化数据结构
 
indexnum=lightmapDay.Length;
 
lightDataFirst=new LightmapData[indexnum];
 
lightDataSecond=new LightmapData[indexnum];
 
if(ok){
 
//将两套图写入数据结构
 
for(var i=0;i<indexnum;i++){
 
lightDataFirst[i]=new LightmapData();
 
lightDataFirst[i].lightmapFar=lightmapDay[i];
 
lightDataSecond[i]=new LightmapData();
 
lightDataSecond[i].lightmapFar=lightmapNight[i];
 
}
 
}
 
}
 
function OnMouseDown () {
 
if(ok){
 
LightmapSettings.lightmaps=lightDataFirst;//切入第一套图
 
}
 
else
 
{
 
LightmapSettings.lightmaps=lightDataSecond;//切入第二套图
 
}
 
ok=!ok;
 
}


  4.将js添加到ui上

  总结:这个问题的解决是靠LightmapData,LightmapSettings这两个结构的掌握。


        游戏蛮牛:http://www.unitymanual.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。