Unity3d 如何在AAR基础上检测到被跟踪图片的位置? 我使用统一AR基础图像跟踪。当跟踪图片出现在屏幕上时,如何获取其位置或其与相机的相对距离?

Unity3d 如何在AAR基础上检测到被跟踪图片的位置? 我使用统一AR基础图像跟踪。当跟踪图片出现在屏幕上时,如何获取其位置或其与相机的相对距离?,unity3d,augmented-reality,Unity3d,Augmented Reality,您需要其他对象的位置来检查距离。这可以通过使用Vector3.Distance来完成 但是,首先需要对另一个对象进行变换。您可以通过制作光线投射来实现这一点,在本例中,我从屏幕中间投射光线投射。然后,我将把命中的任何对象的变换指定给hitTransform变量。之后,我可以使用矢量3.距离来比较两个位置并计算距离 Transform hitTransform; private float distance; void Update() { Ray ray = cam.Viewport

您需要其他对象的位置来检查距离。这可以通过使用Vector3.Distance来完成

但是,首先需要对另一个对象进行变换。您可以通过制作光线投射来实现这一点,在本例中,我从屏幕中间投射光线投射。然后,我将把命中的任何对象的变换指定给hitTransform变量。之后,我可以使用矢量3.距离来比较两个位置并计算距离


Transform hitTransform;
private float distance;

void Update()
{
    Ray ray = cam.ViewportPointToRay(new Vector3(0.5F, 0.5F, 0));
    RaycastHit hit

    if (Physics.Raycast(ray, out hit))
    {
        hitTransform = hit.transform;
    }

    distance = Vector3.Distance(hitTransform.position, transform.position);
}


简而言之,如果你看一个在屏幕中间的物体,物体与相机之间的距离将在距离变量中,您也可以在单击或按下按钮时使用光线投射,但为了简单起见,我使用了屏幕中间的部分进行此操作。

您的答案存在的问题是,您不能保证他们正在进行光线投射的图像是跟踪的图像,这可能是提问者的问题之一has@KieranBond然而,这是事实从我读到的有一幅图像。那样的话,我想这会管用的。