我有一个LineRenderer,它只有两个点,即起点和终点。我想用给定的数字划分线,该数字将自动创建或向LineRenderer添加新点。例如,如果我将线除以2,它将在LineRenderer的中心添加另一个点。
已编辑:
现在使用工作脚本和图像结果第二次编辑了我的问题。我不知道这是否是最好的解决方案,但是对我有用。我唯一不知道的是如何根据line.position
的数量计算要使用的除数。并为重复标记。我认为这与我想要的不一样。
GameObject stroke = new GameObject();
LineRenderer line = stroke.AddComponent<LineRenderer>();
line.startWidth = 0.1f;
line.endWidth = 0.1f;
line.useWorldSpace = true;
float divisor;
Vector3 start = new Vector3(-6.7399,-0.2475,0);
Vector3 end = new Vector3(-3.742899, -0.2475, 0);
line.positionCount = 4;
if(line.position == 4)
divisor = 0.333f; //get by 1/3
else if(line.position == 3)
divisor = 0.5f; //get by 1/2
Vector3 valuePerPosition = Vector3.Lerp(start, end, divisor);
for (int i = 0; i < line.positionCount; i++)
{
Vector3 newPosition = start - valuePerPosition;
line.SetPosition(i, start - (newPosition * i));
GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
sphere.transform.position = start - (newPosition * i);
sphere.transform.localScale = new Vector3(0.125f, 0.125f, 0.125f);
}