Unity3D开发之利用GL画曲线
2013-10-30 10:37
190 查看
using UnityEngine; using System.Collections; using System; using System.Collections.Generic; public class DrawLine : MonoBehaviour { //绘制线段材质 public Material material; private List<Vector3> lineInfo; private bool startDraw = false; Event e; void Start () { //初始化鼠标线段链表 lineInfo = new List<Vector3>(); } void OnGUI(){ e = Event.current; } // Update is called once per frame void Update () { if(e.type == EventType.MouseDown) { startDraw = true; } if(e.type==EventType.MouseDrag) { if(startDraw == true){ //将每次鼠标经过的位置存储进链表 lineInfo.Add(Input.mousePosition); } } if(e.type==EventType.MouseUp) { startDraw = false; lineInfo.Clear(); } } //GL的绘制方法系统回调 void OnPostRender() { if(!material) { Debug.LogError("material == null"); return; } //材质通道,0为默认。 material.SetPass(0); //绘制2D图像 GL.LoadOrtho(); //得到鼠标点信息总数量 GL.Begin(GL.LINES); //遍历鼠标点的链表 int size = lineInfo.Count; for(int i =0; i < size - 1;i++) { Vector3 start = lineInfo[i]; Vector3 end = lineInfo[i+1]; //绘制线 DrawLineFun(start.x,start.y,end.x,end.y); } //结束绘制 GL.End(); } void DrawLineFun(float x1,float y1,float x2,float y2) { //绘制线段 GL.Vertex(new Vector3(x1 / Screen.width,y1 / Screen.height,0)); GL.Vertex(new Vector3(x2 / Screen.width, y2 / Screen.height,0)); } }
直接把此脚本绑定在相机上面就可以了。
相关文章推荐
- 【unity3d游戏开发之基础篇】unity3d射线的原理用法以及一个利用射线实现简单拾取的小例子
- (Unity3D)利用Vuforia开发增强现实
- 利用Vuforia ARSDK-Unity3D在Android下开发高通增强现实的小应用
- Unity3D开发之利用LineRenderer画曲线
- 【unity3d游戏开发之基础篇】unity3d射线的原理用法以及一个利用射线实现简单拾取的小例子
- 【unity3d游戏开发之基础篇】unity3d射线的原理用法以及一个利用射线实现简单拾取的小例子
- 【推荐】腾讯android镜像(做Android开发的得好好利用下这个网站,国内的大公司还是可以滴……)
- 利用eclipse开发动态web项目(适用入门)
- 利用Android游戏引擎Angle开发界面——显示汉字
- 【JSP开发】利用cookie实现商品浏览记录
- unity3d游戏开发学习之使用3dmax创建导弹模型
- android开发内存优化——利用软引用
- Unity3D研究院之游戏开发中的人工智能AI
- 利用SharePoint Designer开发可循环工作流
- 独立开发Unity3D需要用到的一些其他工具
- VC环境下利用ATL开发COM组件
- 利用vs.net快速开发windows服务(c#)
- IPhone 利用宏对Debug和Release控制日志输出,提高开发效率
- 利用JSPTagEx开发单页面全程Ajax应用(附源码)
- Unity3D新手引导开发手记