在Unity中画出流畅的线条真的很难吗?

ric*_*yxd 9 drawing unity-game-engine

我曾尝试在Unity中绘制平滑的线条但是使用线条渲染器我只获得锯齿状线条,其边角不圆,特别是当曲率角非常小时.我在质量设置中增加了抗锯齿的值并尝试了不同的材料,但没有任何改变.我还尝试在每次鼠标移动时实例化一个球体,但它会在各个球体之间产生一些间隙,特别是当鼠标快速移动时.我知道有一个名为Vectrosity的插件,但有一种方法可以实现这个whitout吗?

Igg*_*ggy 25

通过从一组点生成网格,您可以获得一些好的结果.

它的算法如下:

  1. 你有一组点,可以用贝塞尔曲线生成.

在此输入图像描述

  1. 对于每个点,将方向矢量带到下一个点v = (p2 - p1) (标记为蓝色).然后将该矢量旋转90度,normal = v.y, -v.x 标记为红色.

在此输入图像描述

  1. 这说明我们将从点位置使用每个法线.现在,您可以将此向量在两个方向上乘以所需的线宽.

在此输入图像描述

  1. 在这些位置创建顶点.

在此输入图像描述

  1. 添加索引以形成三角形.这将是这样的[i, w/2 + i, w/2 + i + 1],其中i是当前的指数,并且w是顶点的总数.

在此输入图像描述

  1. 创建其他三角形.再一次像[i, w/2 * i + 1, i + 1]

在此输入图像描述

  1. 最后的结果.您可以添加更多点以使线条更平滑.

在此输入图像描述


Pro*_*mer 8

我只获得锯齿状线条,其边角不圆,特别是当曲率角非常小时.

这是Unity 5.4及以下版本中的一个问题.在完全重新设计之后,已在Unity 5.5及更高版本中修复此问题LineRenderer.

您所要做的就是更新到Unity 5.5或上面的版本,这个问题应该消失.

有一个叫做的新变量LineRenderer.numCornerVertices.您可以使用它来设置您希望线条的平滑程度.5的值似乎很好.

还有另一个新的变量叫做LineRenderer.numCapVertices可以用来设置线的末端应该是多么平滑.

这是一个截图,演示了5.45.5之间的变化:

在此输入图像描述

  • 不生气。如果您需要其他用户的帮助,然后在他们回复之前对他们的答案投反对票,您希望他们如何提供帮助?我的意思是,如果答案根本没有意义或者很糟糕,那也没关系。这是您的决定,您不必删除反对票。我实际上**不**希望你删除它。您有权对任何问题/答案投否决票。快乐编码! (2认同)