Unity3D开发之折线图制作
因为之前有人问我有没有源码,看这篇博客没看懂。所以最近博主又把这个实现的代码精简了下放到这里。有兴趣的可以来看下。点击打开链接 。
柱状图、折线图这个在数据可视化中会经常用到,可是unity自身并不带创建折线图功能。所以,需要我们自己去写。第一次遇到这个需求是在我刚参加工作时,当时实在没法子,只好选择做了柱状图,那时候柱状图还是用实例化Image然后设置他的高度来显示。想想300,400个数据同时实例化,当时的设备得卡成啥样。还好,现在我找到了一个更好更省性能的方法。如果你想在我这复制代码去完成你的需求那你没必要往下看了,你只有了解整个过程原理才可以灵活运用转接到你的项目里。
public class Chart : MaskableGraphic
{}
protected override void OnPopulateMesh(VertexHelper vh){UIVertex[] verts = new UIVertex[4];verts[0].position = new Vector3(0, 0);verts[0].color = Color.yellow;verts[0].uv0 = Vector2.zero;verts[1].position = new Vector3(0,10);verts[1].color = Color.yellow;verts[1].uv0 = Vector2.zero;verts[2].position = new Vector3(20 ,20);verts[2].color = Color.yellow;verts[2].uv0 = Vector2.zero;verts[3].position = new Vector3(20 , 0);verts[3].color = Color.yellow;verts[3].uv0 = Vector2.zero;vh.AddUIVertexQuad(verts);}
UIVertex[] verts = new UIVertex[4];verts[0].position = new Vector3(10-1.5f,38-1.5f);verts[0].color = Color.white;verts[0].uv0 = Vector2.zero;verts[1].position = new Vector3(10-1.5f, 38+1.5f);verts[1].color = Color.white;verts[1].uv0 = Vector2.zero;verts[2].position = new Vector3(10+1.5f, 38+1.5f);verts[2].color = Color.white;verts[2].uv0 = Vector2.zero;verts[3].position = new Vector3(10+1.5f, 38-1.5f);verts[3].color = Color.white;verts[3].uv0 = Vector2.zero;vh.AddUIVertexQuad(verts);
public bool IsRaycastLocationValid(UnityEngine.Vector2 sp, UnityEngine.Camera eventCamera){Vector2 local;//求出屏幕坐标在canvas下的2D坐标RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, sp, eventCamera, out local);Rect rect = GetPixelAdjustedRect();// Convert to have lower left corner as reference point.local.x += rectTransform.pivot.x * rect.width; //算出屏幕坐标在UI元素内的坐标local.y += rectTransform.pivot.y * rect.height;//这里的数字是根据每个点来确定的,也就是以这个点为中心的自定义边长的正方形四个顶点。if (local.x > 10 && local.x < 30 && local.y > 20 && local.y < 30)return true;elsereturn false;}
private void Update(){bool lal= IsRaycastLocationValid(Input.mousePosition, null);//print(lal);}
Unity3D开发之折线图制作相关推荐
- Unity3D开发之折线图的制作(二)
一年前写过一篇折线图的制作,当时显示效果还可以,只不过因为之前刚接触写博客,所以写的内容不是很完善,加上比较忙,都是草率记录的,代码结构也不是很好.昨天我又把这个项目的代码熟悉了一遍,然后把代码更改精 ...
- Unity3D开发之折线图的制作(三)折线图终结篇之抗锯齿
至于怎么挂载脚本怎么能够运行请参考折线图制作(二)的文章. 之前写的折线图一直被锯齿烦恼着,一直无法使用.一开始一直以为要自己写边际模糊算法来模糊编辑的锯齿部分,这可太难了.后来我的美术搭档告诉我可以 ...
- Unity3D开发之扇形图
扇形图原理和折线图差不多,都是在UI的OnPopulateMesh函数下绘制的.由于做的是半径不均匀的扇形图,所以去贴图抗锯齿没有实现.大家有啥想法(怎么取uv以及边界模糊的贴图怎么画)欢迎留言. 下 ...
- 【GraphMaker】Unity3D图表——柱状图、折线图、饼图
http://blog.csdn.net/yongh701/article/details/71637090?utm_source=itdadao&utm_medium=referral 版权 ...
- Android 开发第三方框架制作条形图、折线图、饼状图、水平条形图
Android 第三方框架MPAndroidChart-v3.1.0的简单使用 这里写目录标题 Android 第三方框架MPAndroidChart-v3.1.0的简单使用 前言 引入库 布局 初始 ...
- 《Splunk智能运维实战》——3.11 制作折线图显示项目浏览量和购买量随时间的变化...
本节书摘来自华章计算机<Splunk智能运维实战>一书中的第3章,第3.11节,作者 [美]乔史·戴昆(Josh Diakun),保罗R.约翰逊(Paul R. Johnson),德莱克· ...
- python折线图样式_Python金融应用之图表制作(二)
NO.52 2020.03.30 工欲善其事,必先利其器 // - 前言 - 今天,小咖带大家使用Python制作A股主要指数走势折线图.最终将得到以下效果:
- qchart折现图_Qt开发技术:QCharts(二)QCharts折线图介绍、Demo以及代码详解
若该文为原创文章,未经允许不得转载 各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究 敬请期待- 红胖子,来也! 介绍了整体框架,开始动手码代码,按照顺序,从折线图开始. QCh ...
- 做折线图坐标轴数字_Excel折线图表的另类表达制作?牛闪君使用了双线表达法来完成...
牛闪闪办公第846个原创技巧Zloffice社群的小伙伴还是很爱学习的,这不,有一位小伙伴看到"特殊"图表表达,想知道是怎么做出来的.这种学习的思路非常好,看到好的表达就想学习,这 ...
最新文章
- python1~10阶乘_python求n的阶乘
- 数据挖掘——数据仓库
- 链表归并成递减c语言,将两个递增的单链表合并为一个递减的单链表
- Firefly推出了小型高性能嵌入式主机
- maven自动部署到tomcat的问题
- (C++)String的用法
- ThreadLocal源码学习
- Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。
- 微信公众号内嵌H5网页授权步骤
- 批量WORD转换为PDF
- 独立游戏如何对接STEAM SDK
- Python量化数据获取:总资产同比增长率与净资产同比增长率
- 验证码接码短信平台 - 小程序版
- webstorm 2017 激活破解方法大全
- BUUCTF reverse1-10 WP
- 06-01 DeepLearning-图像识别
- 学会聆听,职场最重要的事情,没有之一!!!
- 2069: [POI2004]ZAW
- 最新海洋CMS(海洋视频内容管理系统)V12.6版
- 傻瓜式制作纯净版win10启动盘