您的位置:首页 > 移动开发 > Unity3D

Unity3D GUI绘制折线图

2013-09-27 12:09 1071 查看
using UnityEngine;
using System.Collections;
using System;
public class DrawLine : MonoBehaviour {

public Vector2[] m_point;//特征点位置
public Color m_lineColor;
private static Texture2D m_texure;//最终渲染得到的带有折线的纹理

public void InitCanvas(Vector2[] point, int width, int height) {
m_point = point;
m_texure = new Texture2D(width,height);
}

public IEnumerator Draw()
{
//清空纹理对象
for (int i = 0; i < 100; i++)
{
for (int j = 0; j < 100; j++)
{
m_texure.SetPixel(i, j, Color.white);
}
}

Vector2 currentPoint = m_point[0];
for (int i = 1; i < m_point.Length; i++) {
for (float j = 0; j < 1; j = j + 0.01f) {
Vector2 temp = Vector2.Lerp(m_point[i-1],m_point[i],j);
m_texure.SetPixel(Convert.ToInt32(temp.x),Convert.ToInt32(temp.y),m_lineColor);
}
currentPoint = m_point[i];
}
m_texure.Apply();
yield return m_texure;
}
void OnPostRender()
{
StartCoroutine(Draw());
}

void Start() {
InitCanvas(m_point, 100, 100);
}

void OnGUI()
{
GUI.DrawTexture(new Rect(0, 0, 100, 100), m_texure);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: