Проблема с комплектацией "gameObject" в ARCore - PullRequest
0 голосов
/ 11 ноября 2018

Теперь я понимаю, что в большинстве случаев выбор объекта в 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 показывает, что я нажал на Энди.

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

UPDATE

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

...