我需要为我使用Unity制作的分贝应用程序绘制图形。以下解决方案有效,但不如我的雇主所希望的那样精确。我可以让这个图表看起来更专业和准确吗?基本上我希望线宽相等,并防止线几乎看不见,如下图所示:http://puu.sh/qjSvO/a51c11cef5.png
我正在考虑制作2D纹理并使用SetPixel,但我不确定这是否正确。
图形在画布上绘制,作为可伸缩UI的一部分。
public class Graph : MonoBehaviour {
public float graphWidth;
public float graphHeight;
LineRenderer newLineRenderer;
List<int> decibels;
int vertexAmount = 50;
float xInterval;
GameObject parentCanvas;
// Use this for initialization
void Start ()
{
parentCanvas = GameObject.Find("Canvas");
graphWidth = transform.Find("Linerenderer").GetComponent<RectTransform>().rect.width;
graphHeight = transform.Find("Linerenderer").GetComponent<RectTransform>().rect.height;
newLineRenderer = GetComponentInChildren<LineRenderer>();
newLineRenderer.SetVertexCount(vertexAmount);
xInterval = graphWidth / vertexAmount;
}
//Display 1 minute of data or as much as there is.
public void Draw(List<int> decibels)
{
if (decibels.Count == 0)
return;
float x = 0;
for (int i = 0; i < vertexAmount && i < decibels.Count; i++)
{
int _index = decibels.Count - i - 1;
float y = decibels[_index] * (graphHeight/130); //(Divide grapheight with the maximum value of decibels.
x = i * xInterval;
newLineRenderer.SetPosition(i, new Vector3(x - graphWidth / 2 , y - graphHeight / 2 , 0));
}
}
}
答案 0 :(得分:0)
使用编辑器,您可以&#34;剪切&#34;将精灵分成九块,这样每一面都有一个纹理,每个角落都有一个纹理,还有一个纹理可以填充它。我建议使用它来使它看起来很好,如果你想要的话。我自己使用它已经有一段时间了,但也许您可以在Unity手册中找到相关信息。