Понедельник, 25 Ноября 2024, 05:02

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
как сделать 2d свет?
NecrolichДата: Воскресенье, 18 Сентября 2016, 20:48 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Как сделать свет в 2D?Я попытался сделать одну темную текстуру размером с камеру, взять позицию источника света и уменьшить альфу там, где пересекаются текстуры, но в unity не свои координаты, не пиксельные + при вызове GetPixels() выдает Texture 'a ' is not readable.Вообщем я запутался, ищу подсказку как это сделать.
LertmindДата: Понедельник, 19 Сентября 2016, 00:24 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
В гугле полно статей. Недавно отвечал http://gcup.ru/forum/59-8269-720732-16-1473969277. Твоя идея не самая лучшая и медленная, но реализуемая. До того, как в бесплатной версии Unity стало доступно Render To Texture, я писал простой код для тумана войны, который рисует попиксельно круг на текстуру лежащую сверху.
Чтобы можно было считать текстуру, в настройках импорта ставишь Read/Write Enabled.
Если я правильно понял, ты хочешь наложить на один спрайт на другой. Для этого надо провести элементарные действия:
* Узнать координаты углов у спрайтов
* Рассчитать позиции углов накладываемого спрайта относительно тёмного спрайта (x и y от 0 до 1)
* Ну а чтобы получить координаты в текстуре тёмного спрайта - умножаешь эти координаты на размеры текстуры ((int)(localPos.x*texture.width), (int)(localPos.y*texture.height))
* И рисуешь с помощью SetPixel или другого способа.

Добавлено (19 сентября 2016, 00:24)
---------------------------------------------
P.S. Хотя будут проблемы, если размеры текстур разные.

  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг