Страница 1 из 1

UI Кнопки произвольной формы

СообщениеДобавлено: 04 мар 2019, 19:40
Urion
Хочу сделать кнопки круглые, треуголные не важно, нужно что бы прозрачные части не тригерелись.

Если делать как Sprite, прикрутить Polygon Collider 2D и детектить наведение или нажатие через onMouseOver() или onMouseDown() или подобные,
то в таком случае, что бы их было видно, Canvas нужно делать как Screen Space Camera. Но тогда при повороте камеры Коллайдер очень криво себя ведет и куда то не туда поворачивается.
А если сделать Кавас все же как Screen Space Overlay то этих Спрайтов не будет видно.

Если делать кнопки как Image и пытаться таргетить нажатие там, то прозрачные углы тоже нажимаются.

Помогите пж, как мне решить данную проблему?

Re: UI Кнопки произвольной формы

СообщениеДобавлено: 04 мар 2019, 19:42
1max1

Re: UI Кнопки произвольной формы

СообщениеДобавлено: 04 мар 2019, 19:52
Urion
1max1 писал(а):Вроде оно, не? https://docs.unity3d.com/ScriptReferenc ... shold.html


Воть не совсем понял как это дожно работать. Попробовал это:
Синтаксис:
Используется csharp
public bool InterfacePointer = false;
public void OnPointerEnter(PointerEventData eventData) { InterfacePointer = true; }
public void OnPointerExit(PointerEventData eventData) { InterfacePointer = false; }

private void Awake()
{
    if (GetComponent<Image>() != null) GetComponent<Image>().alphaHitTestMinimumThreshold = 0.5f;
}
 

Но оно все равно триггерит на пустых участках

Re: UI Кнопки произвольной формы

СообщениеДобавлено: 04 мар 2019, 20:37
Saltant
Urion писал(а):
1max1 писал(а):Вроде оно, не? https://docs.unity3d.com/ScriptReferenc ... shold.html


Воть не совсем понял как это дожно работать. Попробовал это:
Синтаксис:
Используется csharp
public bool InterfacePointer = false;
public void OnPointerEnter(PointerEventData eventData) { InterfacePointer = true; }
public void OnPointerExit(PointerEventData eventData) { InterfacePointer = false; }

private void Awake()
{
    if (GetComponent<Image>() != null) GetComponent<Image>().alphaHitTestMinimumThreshold = 0.5f;
}
 

Но оно все равно триггерит на пустых участках

Тебе же ссылку скинули, ты читал между строк?
Поставь галку на Read/Write в настройках самого спрайта (картинки)

Изображение

This can be achieved by enabling Read/Write enabled in the advanced Texture Import Settings for the sprite and disabling atlassing for the sprite.

Гифка что всё работает верно:
Скрытый текст:
Изображение

Re: UI Кнопки произвольной формы

СообщениеДобавлено: 05 ноя 2019, 10:12
Subbotey
Добрый день. Интересует этот же вопрос.
По ссылке переходил, выдает что страница отсутствует.
Возможно это реализуется новым методом, если кто знает как, прошу подсказать или хотя бы указать направление.
Спасибо!

Re: UI Кнопки произвольной формы

СообщениеДобавлено: 05 ноя 2019, 10:18
1max1

Re: UI Кнопки произвольной формы

СообщениеДобавлено: 05 ноя 2019, 10:22
Subbotey
1max1 писал(а):Переименовали https://docs.unity3d.com/ru/current/Scr ... shold.html

Спасибо большое!

Re: UI Кнопки произвольной формы

СообщениеДобавлено: 06 ноя 2019, 05:39
Dewa1s
Что за треш вообще, юнитеки реально предлагают на каждую чертову кнопку вешать отдельный скрипт, который просто будет менять 1 параметр при старте? Почему они не сделали обычный ползунок в инспекторе?