你好:)我的代码以下工作正常。如果手动添加游戏对象,它可以创建线渲染器。我想知道的是如何动态设置我的点的大小。这是我正在谈论的样本pic。在检查员的底部,我可以设置我的点的大小,当然。我想要做的是如何编码大小,如例10,而不是通过检查器。
如何设置线条渲染器点的大小?
这是我的代码:
public class Example : MonoBehaviour {
LineRenderer lineRenderer;
public Transform[] points;
private Vector3[] vP;
int seg;
// Use this for initialization
void Start () {
lineRenderer = GetComponent<LineRenderer>();
Lines();
}
public void Lines() {
seg = points.Length;
vP = new Vector3[points.Length];
for (int i = 0; i < points.Length; i++)
{
vP[i] = points[i].position;
}
for (int i = 0; i < seg; i++)
{
float t = i / (float)seg;
lineRenderer.numPositions = vP.Length;
lineRenderer.SetPositions(vP);
}
}
}
答案 0 :(得分:1)
LineRenderer.startWidth
和LineRenderer.endWidth
变量用于设置LineRenderer
的大小。
0.2f
值似乎没问题。
public void Lines()
{
lineRenderer.startWidth = 0.2f;
lineRenderer.endWidth = 0.2f;
seg = points.Length;
vP = new Vector3[points.Length];
for (int i = 0; i < points.Length; i++)
{
vP[i] = points[i].position;
}
for (int i = 0; i < seg; i++)
{
float t = i / (float)seg;
lineRenderer.numPositions = vP.Length;
lineRenderer.SetPositions(vP);
}
}
您也可以使用LineRenderer.widthMultiplier
变量,但这不是必需的。
修改强>
您只想从代码而不是编辑器设置points
变量的大小。就这样做:
int size = 10;
points = new Transform[size];
然后遍历points变量并填充点的变换
for (int i = 0; i < points.Length; i++)
{
points[i] = theGameObjectTransformToUse.transform;
}
如果你没有Transform
来填充它,你可以创建虚拟游戏对象并使用它们的变换来填充它。
for (int i = 0; i < points.Length; i++)
{
GameObject tempObj = new GameObject("dummy" + i);
tempObj.transform.position = yourNewPostion;
points[i] = tempObj.transform;
}
注意:
lineRenderer.numPositions = vP.Length;
应该在for循环之前和之前。在for循环中没有必要这样做。你只需要设置一次。