Unity raycasts, проходящий через пользовательский интерфейс - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь остановить прохождение raycast через мой кнопочный 2d интерфейс. В настоящее время кнопка работает нормально, когда за ней нет игрового объекта, но когда за ней находится игровой объект, она вызывает объект, а не мою кнопку. Я попытался использовать следующий код, чтобы попытаться обнаружить пользовательский интерфейс, но он, похоже, не работает и постоянно возвращает True:

EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId));

Любая помощь будет принята с благодарностью.

Edit:

Мой текущий код:

 void Update () {
    if (!EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId)){
        RegisterModelTouch();
    }

}

public void RegisterModelTouch() {
    // We assume that there was only one touch and take the first 
    // element in the array.

    try {
        Touch touch = Input.touches[0];
        RaycastHit hit;
        Ray ray = Camera.main.ScreenPointToRay(touch.position);


        if (Physics.Raycast(ray, out hit)) {
           if (hit.collider.CompareTag("Mytag")) {
              //Do model stuff here
            }

        }
    }
    catch (Exception e) {
        return;
    }
}
...