Unity3D GUI绘制折线图
来源:互联网 发布:淘宝宝贝批量发布 编辑:程序博客网 时间:2024/05/09 17:25
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); }}