我编写了下面的脚本,它创建了LineRenderer行对象,并模拟了一个基本的绘画' Unity3d中的能力。这很好用但是我似乎无法正确地将线条渲染到彼此之上。似乎是随机的,哪个会出现在前面,哪个会出现在后面。
例如:
在此图像中,按照黑色,橙色,蓝色,黄色,红色,绿色的顺序绘制线条。但是你可以看到这不是它们被渲染的顺序。
func googleSignIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, withError error: NSError!) {
if (error == nil) {
// successful login
LoadHomeScreen(sender: sender)
} else {
print("\(error.localizedDescription)")
}
}
答案 0 :(得分:3)
您可以使用"排序图层" 和" Order In Layer" 属性来执行此操作。建议使用" Order In Layer" ,因为您需要的只是int值来更改它们。如有必要,仅使用"排序层" 。具有最高" Order In Layer" 值的LineRenderer
将在其他LineRenderers
之上绘制。
通过脚本更改"在图层中排序" :
你的四行:
public LineRenderer line1;
public LineRenderer line2;
public LineRenderer line3;
public LineRenderer line4;
将它们安排在屏幕上:
line1.sortingOrder = 3;
line2.sortingOrder = 2;
line3.sortingOrder = 1;
line4.sortingOrder = 0;
这意味着第1行将放在所有其他行的顶部,然后是第2行,然后是第3行,最后第4行。因此,第4行将被放置在所有行的下方。 这是执行此操作的正确方法,它可以同时处理2D和3D矢量位置。
答案 1 :(得分:0)
我猜你正在 XY 平面上绘制线条渲染器。然后 Z 将表示线渲染器的深度。在int类型的脚本中获取深度变量。每当绘制一条线时,将其增加1.每当您绘制线条时,根据深度设置它的点 Z.您可以在 SetPosition 函数调用期间执行此操作。希望这是有道理的。