废话不多说,直接上干货

静态方法,复制就能用
 

 /// <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());
 }

更多推荐