Смена Lightmap текстуры (Решено)

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

Смена Lightmap текстуры (Решено)

Сообщение Shi 02 окт 2011, 00:29

Здравствуйте. Подскажите, есть ли способ как либо динамически сменять Lightmap текстуру на какую-либо другую (в основном, для для смены дня\ночи)?
Наткнулся на подобный инструмент http://forum.unity3d.com/threads/94813-Lightmap-Manager-2-Animated-Lightmaps-per-object-baking-and-saving?highlight=Lightmap+Manager обладающий схожими, но избыточными функциями.
Последний раз редактировалось Shi 11 окт 2011, 08:32, всего редактировалось 3 раз(а).
Аватара пользователя
Shi
UNITрон
 
Сообщения: 211
Зарегистрирован: 30 ноя 2010, 14:58
Откуда: Санкт-Петербург

Re: Смена Lightmap текстуры

Сообщение gnoblin 02 окт 2011, 00:43

skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Смена Lightmap текстуры (Решено)

Сообщение Shi 02 окт 2011, 10:28

Спасибо!
Аватара пользователя
Shi
UNITрон
 
Сообщения: 211
Зарегистрирован: 30 ноя 2010, 14:58
Откуда: Санкт-Петербург

Re: Смена Lightmap текстуры (Решено)

Сообщение Shi 10 окт 2011, 12:06

Подскажите пожалуйста, почему ни один из способов не работает?
Объекту уже присвоена какая либо lightmap. Пробуем сменить, но на любую строчку подобного кода реакция нулевая.
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class LightmapChange : MonoBehaviour {

    public Texture2D[] SomeLightmaps;
        void Start () {
        //пробуем
        LightmapData[] LmData = new LightmapData[2];
        LmData[0].lightmapFar = SomeLightmaps[1];
        LmData[0].lightmapNear = SomeLightmaps[0];
        LightmapSettings.lightmaps = LmData;
        //пробуем получить хоть какую то реакцию
        LightmapSettings.lightmaps[0].lightmapFar = null;
        //пробуем по другому
        LightmapSettings.lightmaps[0].lightmapFar = SomeLightmaps[1];
        LightmapSettings.lightmaps[0].lightmapNear = SomeLightmaps[1]; ;
        }
}
 
Аватара пользователя
Shi
UNITрон
 
Сообщения: 211
Зарегистрирован: 30 ноя 2010, 14:58
Откуда: Санкт-Петербург

Re: Смена Lightmap текстуры

Сообщение gnoblin 10 окт 2011, 12:57

Чуть позже гляну как делал.
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Смена Lightmap текстуры

Сообщение Shi 10 окт 2011, 18:46

Был бы очень благодарен. На офф. форуме есть 3-4 темы со схожим кодом, и утверждается, что он работает (работал - темы старые).
Аватара пользователя
Shi
UNITрон
 
Сообщения: 211
Зарегистрирован: 30 ноя 2010, 14:58
Откуда: Санкт-Петербург

Re: Смена Lightmap текстуры

Сообщение gnoblin 10 окт 2011, 19:36

Лайтмапы грузятся из бандля (не стал вырывать из контекста):

Синтаксис:
Используется csharp
LightmapData[] data = new LightmapData[s.lightmap_namings.Length];
        for (int i = 0; i < data.Length; i++)
        {
            data[i] = new LightmapData();
            if (www.assetBundle.Contains(s.lightmap_namings[i].far_name))
            {
                AssetBundleRequest bundleRequest = www.assetBundle.LoadAsync(s.lightmap_namings[i].far_name, typeof(Texture2D));
                yield return bundleRequest;
                data[i].lightmapFar = (Texture2D)bundleRequest.asset;
            }
            else
            {
                Debug.Log("far lighmap not found");
            }
           
            if (www.assetBundle.Contains(s.lightmap_namings[i].near_name))
            {
                AssetBundleRequest bundleRequest = www.assetBundle.LoadAsync(s.lightmap_namings[i].near_name, typeof(Texture2D));
                yield return bundleRequest;
                data[i].lightmapNear = (Texture2D)bundleRequest.asset;
            }
            else
            {
                Debug.Log("near lighmap not found");
            }
        }

        LightmapSettings.lightmaps = data;
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Смена Lightmap текстуры

Сообщение Shi 11 окт 2011, 08:31

Сработало, спасибо большое! Почему не работало в первом случае - нужно было создавать каждый новый элемент массива, а я создавал только сам массив.
[curved_hands]
Аватара пользователя
Shi
UNITрон
 
Сообщения: 211
Зарегистрирован: 30 ноя 2010, 14:58
Откуда: Санкт-Петербург


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

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

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


cron