Unity Vuforia:尝试使用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变换位置。

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

最新更新