Я хочу создать объект, как только ARCore распознает плоскость

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

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

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


person user9802048    schedule 16.05.2018    source источник


Ответы (1)


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

Это можно сделать с помощью 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);
}
person JackMini36    schedule 17.05.2018