Делаем прототип клиент-серверной стратегии на Unity

Недавно я делал тестовое задание в одну некогда известную в нашей стране игровую компанию. Честно говоря, я по-началу был несколько ошарашен дерзостью — ни много ни мало, нужно было всего лишь сделать “прототип клиент-серверной стратегии”. Тянет на несколько дней плотной работы! Но я все же решил ввязаться в это. Ну, мне ведь не слабо, да?

Continue reading “Делаем прототип клиент-серверной стратегии на Unity”

Поддержка TextMesh Pro в Soft Mask

TextMesh Pro — очень популярный ассет для рендеринга SDF-шрифтов. Не так давно он стал доступен бесплатно, что для меня послужило поводом наконец-то сделать штатную интеграцию этого пакета с моим Soft Mask.

Continue reading “Поддержка TextMesh Pro в Soft Mask”

Как устроен Soft Mask

Кто работал с UI в Unity, мог столкнутся с одной особенностью стандартного компонента Mask: он работает через stencil и потому не поддерживает прозрачность. Пиксель либо полностью виден, либо полностью маскирован. В некоторых случаях это не проблема, поскольку мы можем “прикрыть” маскированный элемент какой-нибудь рамкой:

Обратите внимание на пикселированные края картинки слева. Но иногда нам нужен плавный переход:

Добиться такого эффекта в Unity без сторонних компонентов или написания своих шейдеров невозможно. Именно этот недостаток стандартной маски и призван устранить мой ассет — Soft Mask.

Continue reading “Как устроен Soft Mask”

Реализация тумана войны (3/3)

В предыдущих частях мы уже, в общем-то, реализовали туман войны. Но вот представьте, что теперь захотелось добавить еще одну фичу — чтобы карта плавно уходила в темноту по краям карты. И вроде бы эта штука кажется чем-то похожей на туман войны, не так ли? Давайте разберемся.

Continue reading “Реализация тумана войны (3/3)”

Реализация тумана войны (2/3)

Итак, мы реализовали обновление карты видимости и применение тумана войны через .cginc, вставленный во все шейдеры проекта. Но пока что в самом простом виде, что дает некрасивые пикселированные границы видимых областей. В этой части мы устраним пиксели а также реализуем сокрытие вражеских юнитов туманом войны.

Continue reading “Реализация тумана войны (2/3)”

Реализация тумана войны (1/3)

Однажды для одного проекта, над которым я работал, понадобилось реализовать туман войны. Казалось бы, это такая популярная фича, что для нее в Asset Store непременно найдется с десяток решений. На деле их нашлось всего несколько, а доверие вызвало лишь одно из них. Основная его фича – расчет полей видимостей с учетом перекрытий, вроде как в Heroes of the Storm или других MOBA’х. Нам же нужен был всего лишь старый добрый туман войны, как в старых RTS’ках, когда карта раскрывается кружочками вокруг юнитов. Это была одна из причин, почему я в итоге отказался от использования этого ассета и решил делать свою реализацию. О том, как я это делал, собственно, и хочу рассказать.

Continue reading “Реализация тумана войны (1/3)”