Как отключить / включить определенный EventTrigger в единстве - PullRequest
0 голосов
/ 15 января 2019

У меня есть 5 EventTrigger, который я прикрепил к изображению. Есть
«начало перетаскивания», «перетаскивание», «завершение перетаскивания», «указатель ввода». «указатель выхода»

нравится это изображение

enter image description here



Я могу отключить их все одновременно с помощью

eventTrigger.enabled = false;

Однако я хотел бы просто отключить событие «begin Drag».
Кто-нибудь знает, как это сделать?

1 Ответ

0 голосов
/ 15 января 2019

Вместо этого установите флаг UIDragableScript.

public bool allowBeginDrag; 

Установить логическое значение.

indicatorWidgetObject.GetComponent<UIDragableScript>().allowBeginDrag = false;

Затем заставьте UIdragableScript.BeginDrag зависеть от него.

UIdragableScript.BeginDrag()
{
    if(!allowBeginDrag) return;

    // ...
}

Возможно, вы захотите использовать интерфейсы IDragXHandler и IPointerXHandler вместо EventTrigger для реализации логики в самих сценариях:

UIDragableScript

public class UIDragableScript : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
    public bool allowBeginDrag;

    public void OnBeginDrag(PointerEventData eventData)
    {
        if(!allowBeginDrag) return;

        // ...
    }

    public void OnDrag(PointerEventData eventData)
    {
        // ...
    }

    public void OnEndDrag(PointerEventData eventData)
    {
        // ...
    }
}

UIHoverScript

public class UIHoverScript : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
    public void OnPointerEnter(PointerEventData pointerEventData)
    {
        // ...
    }

    //Detect when Cursor leaves the GameObject
    public void OnPointerExit(PointerEventData pointerEventData)
    {
        // ...
    }
}

Убедитесь, что в сцене есть EventSystem, чтобы разрешить обнаружение щелчка / зависания / и т.д. Для обнаружения щелчка / наведения / и т. Д. На объектах GameObject, не связанных с пользовательским интерфейсом, убедитесь, что к Camera прикреплен PhysicsRaycaster. (из IPointerClickHandler )

А потом вообще не используйте EventTrigger.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...