unity 给Linerenderer拐点处,动态增加n个点
·
废话不多说,直接上干货
静态方法,复制就能用
/// <summary>
/// 给Linerenderer拐点处,动态增加n个点
/// </summary>
public static void AddLineRenderPos(GameObject obj, int addNum = 10)
{
LineRenderer line = obj.GetComponent<LineRenderer>();
int positionCount = line.positionCount;
Vector3[] posList = new Vector3[positionCount];
for (int i = 0; i < positionCount; i++)
{
posList[i] = line.GetPosition(i);
}
List<Vector3> newPosList = new List<Vector3>();
addNum /= 2;
newPosList.Add(posList[0]);
//为除首尾点之外的拐点附近,动态增加点位。
for (int i = 1; i < posList.Length - 1; i++)
{
Vector3 start = posList[i - 1];
Vector3 mid = posList[i];
Vector3 end = posList[i + 1];
for (int j = addNum; j > 0; j--)
{
newPosList.Add(Vector3.Lerp(mid, start, j * 0.01f));
}
newPosList.Add(mid);
for (int j = 1; j <= addNum; j++)
{
newPosList.Add(Vector3.Lerp(mid, end, j * 0.01f));
}
}
newPosList.Add(posList[^1]);
line.positionCount = newPosList.Count;
line.SetPositions(newPosList.ToArray());
}
更多推荐



所有评论(0)