Unity-让两个Line Renderer交织在一起?

时间:2018-07-25 09:42:33

标签: c# unity3d line renderer

我的游戏中有两个游戏对象,每个对象都有一个使用以下脚本的线条渲染器:

void Update () {

    if(Vector3.Distance(points.Last(), player.position) > pointSpacing)
    {
        SetPoint();
    }

}

void SetPoint()
{
    points.Add(player.position);

    line.positionCount = points.Count;
    line.SetPosition(points.Count - 1, player.position);
}

问题在于,当线相交时,一条线总是位于另一条线的上方,如图2所示。我知道我可以使用排序层和层顺序更改在顶部渲染的那个,但这不是问题。问题是我希望线条像图1那样交织在一起,因此,当一条线与另一条线交叉时,会在顶部渲染一条线。可以用线条渲染器完成吗?还是我可以使用其他方法来获得这种效果?

enter image description here

1 个答案:

答案 0 :(得分:1)

Line Renderer组件存储3D点数组并将它们彼此连接。 如果您有一台“静态”相机(例如,您始终从上方看世界),则可以更改两条线彼此交叉的3D点的y变量。

让我们看一个例子: 第一线点:  1. {-1,0,1}  2. {0,0,0}  3. {1,0,-1} 第二行点:  1. {-1,0,-1}  2. {0,0,0}  3. {1,0,1}

如您所见,这两条线在origo中交叉。如果将第一行第二点的y变量更改为0.00..1,它将是从摄像机视图渲染的变量。 请让我知道是否有帮助。