Я хочу создать объект, как только ARCore распознает плоскость - PullRequest
0 голосов
/ 16 мая 2018

В руководстве ARCore, распознавание плоскости и касание ее создает объект на экране. Но я хочу создать объект, как только узнаю плоскость.

Алгоритм процесса Распознать плоскость -> Прикоснуться к распознанной плоскости -> Объект создан в плоскости прикосновения. Здесь объект генерируется из распознанной плоскости. Я хочу изменить это.

Я понятия не имею, какую часть изменить в этом уроке ARCore. Пожалуйста, помогите мне.... Спасибо.

1 Ответ

0 голосов
/ 17 мая 2018

Вы можете создать объект в том месте, на которое «смотрит» ваша камера. Поэтому, как только плоскость обнаружена и ваша камера указывает на нее, вы создаете объект.

Это можно сделать с помощью Raycasting (при условии, что вы используете Unity, так как вы использовали тег C #). Просто снимите луч с вашей камеры и проверьте, попадаете ли вы в обнаруженную плоскость. Если вы, просто создайте объект в этом месте

сохранить глобальную ссылку на объект создания, чтобы вы могли создать его только один раз

GameObject spawnedObject;

Тогда делай лучи

RaycastHit hit;
Ray spawnRay = ARCamera.ScreenPointToRay(new Vector3(Screen.width / 2, Screen.height / 2, 0));
LayerMask selectLayers = 1 << LayerMask.NameToLayer(DetectedPlanesLayer);
if (spawnedObject == null && Physics.Raycast(spawnRay, out hit, Mathf.Infinity, spawnLayers))
{
    spawnedObject = Instantiate(objectPrefab, hit.point, Quaternion.identity);
}
...