Я пытаюсь остановить прохождение 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;
}
}