Можно ли запечь источник света в отдельную лайтмапу?
Добавлено:
13 авг 2018, 11:04
Vefery
Хочу реализовать свет от телевизора в ночной квартире через area light, но также хочу добавить возможность его отключить. В Гугле нашел код по отключении лайтмапы сцены в целом, кусочки от одной лайтмапы отключать врятли выйдет, а вот можно ли запечь этот источник света в отдельную лайтмапу и через код отключать только ее?
Re: Можно ли запечь источник света в отдельную лайтмапу?
Добавлено:
14 авг 2018, 13:18
Bill Gates
Запекаешь свет два раза: с включенным и выключенным телеком. После первого раза переименовываешь папку с LightmapData, чтобы при втором запекании данные не перезаписались. Далее используешь что-то вроде этого (Unity 5.6):
Используется csharp
public class NewBehaviourScript : MonoBehaviour
{
[SerializeField]
private bool on;
[SerializeField]
private Lightmap tvOn;
[SerializeField]
private Lightmap tvOff;
void Start ()
{
LightmapSettings.lightmaps = on ? tvOn.ToLightmapData () : tvOff.ToLightmapData ();
}
}
[System.Serializable]
public class Lightmap
{
[SerializeField]
private Texture2D dir0;
[SerializeField]
private Texture2D light0;
[SerializeField]
private Texture2D dir1;
[SerializeField]
private Texture2D light1;
public LightmapData[] ToLightmapData ()
{
LightmapData data0 = new LightmapData ();
data0.lightmapDir = dir0;
data0.lightmapColor = light0;
LightmapData data1 = new LightmapData ();
data1.lightmapDir = dir1;
data1.lightmapColor = light1;
return new LightmapData[] { data0, data1 };
}
}