как блокировать рейкаст при проходе через UI ?

Общие вопросы о Unity3D

как блокировать рейкаст при проходе через UI ?

Сообщение jimmm 11 авг 2018, 17:12

Подскажите, как заблокировать рейкаст если касаешься UI элемента?
! EventSystem.current.IsPointerOverGameObject() не работает

Синтаксис:
Используется csharp
void Update () {

        if (Input.touchCount > 0 ) {
               
                Touch touch00zero = Input.GetTouch (0);

                if (touch00zero.phase == TouchPhase.Began  && ! EventSystem.current.IsPointerOverGameObject()) {
                        Ray r = Camera.main.ScreenPointToRay (touch00zero.position);
                        RaycastHit hit;
                        if (Physics.Raycast (r, out hit, 20f)) {
                                if (hit.collider.tag == "rsp") {
                                        pointScale.position = hit.point;
                                        scelObj.transform.parent = pointScale.transform;

                                }
                        }
                }
        }
}
 
Последний раз редактировалось jimmm 11 авг 2018, 23:31, всего редактировалось 1 раз.
jimmm
UNIверсал
 
Сообщения: 417
Зарегистрирован: 23 янв 2013, 22:57

Re: как блокировать рейкаст при проходе через UI ?

Сообщение Cr0c 11 авг 2018, 22:52

Для первого тача, если тач
Синтаксис:
Используется csharp
    public bool CursorOverUI()
    {
#if (UNITY_ANDROID || UNITY_IOS) && (!UNITY_EDITOR)
        int cursorID = Input.GetTouch(0).fingerId;
        return EventSystem.current.IsPointerOverGameObject(cursorID);
#else
        return EventSystem.current.IsPointerOverGameObject();
#endif
    }
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 15