我的游戏中有两个游戏对象,每个对象都有一个使用以下脚本的线条渲染器:
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那样交织在一起,因此,当一条线与另一条线交叉时,会在顶部渲染一条线。可以用线条渲染器完成吗?还是我可以使用其他方法来获得这种效果?
答案 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,它将是从摄像机视图渲染的变量。
请让我知道是否有帮助。