在顶部,我添加了:
public LineRenderer LineRenderer;
首先:
void Start()
{
DrawTraffic();
}
这是gizmos方法:
void OnDrawGizmos()
{
for (int k0 = 0; k0 < transform.childCount; k0++)
{
Vector3 Pos = transform.GetChild(k0).transform.localPosition;
Gizmos.color = Color.green;
Gizmos.DrawWireSphere(Pos, MaxStartScatter);
Gizmos.DrawLine(transform.GetChild(k0).position, transform.GetChild(k0).position + transform.GetChild(k0).transform.TransformVector(Vector3.forward) * 300);
Gizmos.color = Color.yellow;
for (int k1 = 0; k1 < 10; k1++)
{
Gizmos.DrawWireSphere(Pos += transform.GetChild(k0).transform.TransformVector(Vector3.forward) * 30, MaxStartScatter);
}
}
}
这是我想在运行时中显示的DrawTraffic:
private void DrawTraffic()
{
// set the color of the line
LineRenderer.startColor = Color.red;
LineRenderer.endColor = Color.red;
// set width of the renderer
LineRenderer.startWidth = 0.3f;
LineRenderer.endWidth = 0.3f;
for (int k0 = 0; k0 < transform.childCount; k0++)
{
Vector3 Pos = transform.GetChild(k0).transform.localPosition;
LineRenderer.SetPosition(0, Pos);
}
}
但我不确定DRawTraffic方法中的下一步。如何在小控件中的所有位置之间画线?
我现在尝试了这个,但是在行上出现出站异常:
LineRenderer.SetPosition(2, transform.GetChild(k0).position + transform.GetChild(k0).transform.TransformVector(Vector3.forward) * 300);
这是我尝试的:
private void DrawTraffic()
{
// set the color of the line
LineRenderer.startColor = Color.red;
LineRenderer.endColor = Color.red;
// set width of the renderer
LineRenderer.startWidth = 0.3f;
LineRenderer.endWidth = 0.3f;
for (int k0 = 0; k0 < transform.childCount; k0++)
{
Vector3 Pos = transform.GetChild(k0).transform.localPosition;
LineRenderer.SetPosition(0, Pos);
LineRenderer.SetPosition(1, transform.GetChild(k0).position);
LineRenderer.SetPosition(2, transform.GetChild(k0).position + transform.GetChild(k0).transform.TransformVector(Vector3.forward) * 300);
}
}
在调用之前,您必须将值设置LineRenderer.positionCount
为transform.childCount
(或要绘制的任意数量的点)LineRenderer.SetPosition
,这很可能是您获得越界异常的原因。
参考中有一个示例:https : //docs.unity3d.com/ScriptReference/LineRenderer-positionCount.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句