关键代码:LightmapSettings.lightmaps = lightmapDatas;
LightmapData中操作三张图:lightmapColor,lightmapDir,以及一张ShadowMap
这里只操作前两张:
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class LightingSwitchBtn : MonoBehaviour
{
public bool IsTurnOn = false;
// / 光照信息
LightmapData[] lightmapDatas;
/// 暗的时候的贴图
public Texture2D[] lightmapDark;
public Texture2D[] lightmapDarkDir;
/// 亮的时候的贴图
public Texture2D[] lightmapLight;
public Texture2D[] lightmapLightDir;
void Awake()
{
}
public void OnPointerClick()
{
Debug.Log("1111");
SwichState();
}
public void SwichState()
{
Debug.Log("2222");
bool ClickState = !IsTurnOn;
if (ClickState)
{
SetLightMap(lightmapLight, lightmapLightDir);
}
else
{
SetLightMap(lightmapDark, lightmapDarkDir);
}
IsTurnOn = ClickState;
}
public void SetLightMap(Texture2D[] lightmapTex, Texture2D[] lightmapDir)
{
if (lightmapTex == null)
{
return;
}
lightmapDatas = new LightmapData[lightmapTex.Length];
for (int i = 0; i < lightmapTex.Length; i++)
{
LightmapData lmd = new LightmapData();
lmd.lightmapColor = lightmapTex[i];
lmd.lightmapDir = lightmapDir[i];
lightmapDatas[i] = lmd;
}
LightmapSettings.lightmaps = lightmapDatas;
}
}