Unity Vuforia:尝试使用 LineRenderer 画线时相机位置错误

Unity Vuforia: Camera position is wrong when trying to draw a line with LineRenderer

你好,我是 AR 开发的新手,我尝试制作一个简单的脚本,获取相机位置和世界中某个物体的位置,然后使用 LineRenderer 在它们之间绘制一条简单的线。

对象绑定到 imagetarget 并且我 运行 FIRST_TARGET 设置(所以世界应该在 imagetarget 上有它的原点 (0,0,0))

但是我觉得相机位置不对,我不太明白为什么。我想要的是从移动(相机)屏幕的中心到使用 imagetarget 查看的世界中的某个对象的一条线。我希望对我的问题有所帮助。我的脚本代码在这里:

public class POILine : MonoBehaviour
{
//Camera
private GameObject camera;
//Gameobject of interest to point the user towards
public GameObject to;
private GameObject toParent;
private LineRenderer line;
public float lineWidthMultiplier = 0.5f;
private float distance;
public float distanceMin = 50f;
void Start ()
{
    camera = GameObject.FindGameObjectWithTag("MainCamera");
    line = this.gameObject.AddComponent<LineRenderer>();

    line.positionCount = 2;
    //Thickness of the line
    line.widthMultiplier = lineWidthMultiplier;
}

// Update is called once per frame
void Update ()
{
    TrackableBehaviour.Status toStatus = to.transform.parent.GetComponent<TrackableBehaviour>().CurrentStatus;
    if (toStatus == TrackableBehaviour.Status.TRACKED || toStatus == TrackableBehaviour.Status.EXTENDED_TRACKED)
    {
        distance = Vector3.Distance(camera.transform.position, to.transform.position);
        if (distance > distanceMin)
        {
            line.enabled = true;
            if (to != null)
            {
                //I think the error is here
                line.SetPosition(0, camera.transform.position);
                line.SetPosition(1, to.transform.position);
            }
        }
        else
        {
            line.enabled = false;
        }
    }
}

设法让它工作,我所做的是将一个空的游戏对象作为子对象放置到我当前正在跟踪的 Imagetarget 上,然后让它跟随 ARCamera 变换位置。

然后代码通过从那个空的游戏对象到感兴趣的对象渲染一条线来工作。