Можно ли запечь источник света в отдельную лайтмапу?

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Можно ли запечь источник света в отдельную лайтмапу?

Сообщение Vefery 13 авг 2018, 11:04

Хочу реализовать свет от телевизора в ночной квартире через area light, но также хочу добавить возможность его отключить. В Гугле нашел код по отключении лайтмапы сцены в целом, кусочки от одной лайтмапы отключать врятли выйдет, а вот можно ли запечь этот источник света в отдельную лайтмапу и через код отключать только ее?
Vefery
UNIт
 
Сообщения: 136
Зарегистрирован: 20 фев 2018, 16:47

Re: Можно ли запечь источник света в отдельную лайтмапу?

Сообщение Bill Gates 14 авг 2018, 13:18

Запекаешь свет два раза: с включенным и выключенным телеком. После первого раза переименовываешь папку с 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 };
    }
}
 
Bill Gates
UNIт
 
Сообщения: 127
Зарегистрирован: 16 июл 2015, 11:27


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 16