Проблема с выбором "gameObject" в ARCore

Теперь я понимаю, что в большинстве случаев выбор объекта в ARCore не имеет ничего общего с самим ARCore с точки зрения Unity, но стандартный подход просто не работает для меня.

RaycastHit hitObject;
Ray ray = FirstPersonCamera.ScreenPointToRay(hit.Pose.position);

if(Physics.Raycast(ray, out hitObject)) {

    if(hitObject.collider != null) {
        Debug.Log(hitObject.collider.gameObject.name);
        Debug.Log(hitObject.collider.gameObject.tag);

        if(hitObject.collider.gameObject.tag == TAG_SCHEME_OBJECT) {
            movement = false;
        }
    }
}

Не против hit.Pose.position Я тестировал очень разные элементы здесь. Теперь проблема заключается в следующем:

  1. Когда я касаюсь экрана, я ставлю объект Энди - отлично

  2. Я блокирую установку следующего с помощью if (currentNumber < objectsAllowed && placeNext) - работает отлично. Я могу улучшить лимит (разместить больше Энди), когда я нажимаю на кнопку. Это также работает отлично

  3. Самое смешное происходит с моим коллайдером. Итак, мой Энди на экране, и я касаюсь экрана где-то еще. Мой Debug.Log показывает, что я нажал на Энди. И я не имею в виду, что у меня большой палец, я постукиваю на расстоянии 1 метра от него. Где бы я ни нажимал на экран, мой Debug.Log показывает, что я нажал на своего Энди.

Что я делаю не так? Это очень простой код из документации. Почему я всегда получаю информацию о том, что мой луч сталкивается с игровым объектом, если это не так?

ОБНОВЛЕНИЕ:

Проблемы были самыми простыми, как это может быть. Коллайдер был слишком большой.

0 ответов

Другие вопросы по тегам