我想在 ARCore 识别到平面后立即创建一个对象

I want to create an object as soon as ARCore recognizes a plane

在 ARCore 教程中,识别平面并触摸它会在屏幕上创建一个对象。 但是我想一知道飞机就创建一个对象。

算法过程 识别平面 -> 触摸识别的平面 -> 在触摸的平面创建对象。 这里,对象是从识别的平面生成的。 我想改变这个。

我不知道在这个 ARCore 教程中修改哪一部分。 请帮我.... 谢谢。

您可以在相机 "looking" 所在的位置创建对象。因此,一旦检测到飞机并且您的相机指向它,您就可以创建对象。

这可以使用 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);
}