Unity C#:从Gameobject(3D)到Canvas(屏幕空间-相机)的线条渲染器

时间:2019-03-19 10:24:41

标签: unity3d

我的场景中有一个3D对象,我想在3D对象和一个具有渲染模式“屏幕空间-相机”的Canvas之间绘制一条线(LineRenderer)。

    Destination = GameObject.Find("MyCanvas").GetComponent<Canvas>().transform;
    lineRenderer = gameObject.AddComponent<LineRenderer>();
    lineRenderer.material = new Material(Shader.Find("Particles/Additive"));
    lineRenderer.SetColors(laserColor,laserColor);
    lineRenderer.SetWidth(initW,finalW);
    lineRenderer.SetVertexCount(2);
    Origin= GameObject.Find("MyObj");
    lineRenderer.SetPosition(0, Origin.position);
    lineRenderer.SetPosition(1, Destination.position);

如果对象是两个3D对象,则此代码效果很好。就我而言,3D对象和“画布”之间的线是错误的。这条线的3D对象坐标错误。 这显然是一个坐标问题。我怎样才能从我的画布上获得正确的坐标?我必须进行某种转换吗? 谢谢您的帮助。

0 个答案:

没有答案