Первой идеей было использовать TextMeshPro, но я не могу использовать его в спрайте. Средство рендеринга спрайтов и сетка являются взаимоисключающими. Это означает, что я не могу использовать 2d-порядок сортировки Unity для управления его видимостью. Текст будет либо перекрыт каждым объектом-спрайтом, либо будет плавать поверх объектов-спрайтов. Никакого промежуточного звена, что для карточной игры бесполезно. Я пробовал создавать объекты-спрайты или холсты, а затем добавлять TMP в качестве дочернего объекта, но не нашел способа заставить его действовать как 2D-объект для целей сортировки.
Вторая идея заключалась в использовании TextMeshPro (UI) на холсте. Для перетаскивания карточек и их правильной укладки отлично работает порядок сортировки Unity для 2d-объектов. Однако мне бы хотелось иметь возможность маскировать карты как специальный эффект. Например, создайте эффект «горения», распространяющийся вверх по карте, или сканирующий «импульс», который маскирует карту из центра расширяющегося круга. Все объекты-спрайты маскируются так, как и следовало ожидать, но, поскольку TMP является объектом пользовательского интерфейса, он игнорирует маски спрайтов.
Вся документация, которую я могу найти по этому поводу, сильно устарела. . Я использую неправильный тип объектов? Есть ли способ замаскировать отсутствующий TMP (UI)?
Текущий код реализации использует TMP (UI). В Обновлении у меня есть следующее:
Код: Выделить всё
if (beingPlayed && !moving && countdownToBurn > 0)
{
countdownToBurn -= Time.deltaTime;
if (countdownToBurn = ZoneConfig.cardBurnScaleAdder * ZoneConfig.cardBurnScaleMult)
{
stage.PlayCard(thisCard);
thisCard.DestroyCard();
Destroy(burnMask);
}
}
Все вышеперечисленное работает, за исключением маска не влияет на TMP (UI) карты.
Всем спасибо!
Подробнее здесь: https://stackoverflow.com/questions/791 ... in-2d-game
Мобильная версия