Как получить событие щелчка 3D-объекта, визуализируемого с помощью arcore SDK в студии Android? Мое требование - щелкнуть этот 3D-объект и отобразить всплывающее диалоговое окно.
Событие нажатия 3D-объектов в ARCore
comment
Вы программируете в чистом OpenGL? Если это так, то вам придется вручную выполнить трассировку лучей и проверку ограничивающей рамки на пересечение. В противном случае вам следует рассмотреть возможность использования платформы рендеринга более высокого уровня, такой как Viro: viromedia.com, которая управляет рендерингом и предоставляет вспомогательные функции. чтобы делать raycasting и простые события для вас.
- person ACVM   schedule 19.04.2018
Ответы (3)
Это не имеет ничего общего с ARCore. На самом деле за это отвечает игровой движок/фреймворк, который вы используете.
Например, если вы используете Unity, вы можете использовать Raycasting.
RaycastHit hit;
Ray ray = yourARCamera.ScreenPointToRay(Input.GetTouch(0).position);
if (Physics.Raycast(ray, out hit))
{
// Check if what is hit is the desired object
if(hit.tag == "The_Tag_Of_The_Object_You_Are_Looking_For")
{
// User clicked the object.. Do something here..
}
}
Подробнее здесь:
https://unity3d.com/learn/tutorials/topics/physics/raycasting https://docs.unity3d.com/ScriptReference/Physics.Raycast.html а>
person
JackMini36
schedule
19.04.2018
ARCore не поддерживает эту функцию. Вам нужно сделать это самостоятельно. Наиболее популярным способом является метод пикинга лучей. Есть много примеров, как это использовать
person
Fixus
schedule
17.04.2018
ссылка на эти примеры была бы отличной.
- person Andreas Mennel; 18.04.2018
Не могли бы вы предоставить мне несколько соответствующих примеров или несколько примеров кода, которые вы сделали в своих проектах. Я искал, но не смог найти точного решения моей проблемы. Заранее спасибо.
- person Janak Phuyal; 18.04.2018
не поймите меня неправильно, но такие примеры найти несложно: stackoverflow.com/questions/16746211/ Это, вероятно, не решит вашу проблему на 100%, потому что большинство элементов должны быть связаны с ваш код, а вы его не предоставили.
- person Fixus; 18.04.2018
В случае с Arcore - Sceneform SDK после создания якоря вам просто нужно установить прослушиватель на вашем AnchorNode следующим образом.
anchorNode.setOnTapListener((hitResult,motionEvent)->{
//Your pop up
});
person
Oush
schedule
10.11.2019