【Unity】UI画线工具
【Unity】UI画线工具
最近恰好遇到在图片上画线标记路径的需求,需要动态地画很多线,感觉做帧动画的话美术工作量有点大,所以做了一个功能比较简单的UI画线工具 UIPathwaySystem : https://greenbamboo.coding.net/p/UIPathwaySystem/d/UIPathwaySystem/git 。
以下内容是对该工具的简介,内容与上面链接中给出的项目主页的说明相同。
基于UGUI制作的简单画线工具。
功能列表:
- 从多个起点开始绘制线段
- 单条线段分裂成多条线段
- 多条线段汇合成单条线段
- 线段跳转
- 设置线段颜色
使用限制:
- 不支持绘制平滑曲线(绘制平滑曲线可以考虑使用专门的图表插件)
- 不支持分辨率动态适配(可以实现但处理起来比较繁琐)
如何使用:
将 UGUIPathwaySystem/Prefabs/UIPathway.prefab 添加到任意 Canvas
对象下,这将会在Scene中添加一个 UIPathway
对象。 UIPathway
对象使用 UIWaypoint
对象来标记线路节点,在UIPathway
对象下添加、排列 UIWaypoint
对象并设置其间的连接关系即可设定画线规则。
在 UIWaypoint
对象中包含了一些属性,它们分别是:
Type
:节点类型None
:未指定功能的节点,系统将会提示错误Start
:起点,系统将会从起点向后绘制线段Relay
:中继点,用于连接前后的点Jump
:跳跃点,系统不会从该点向后绘制线段,而是直接跳转到后续节点开始绘制End
:终点,系统将会在终点结束绘制
Time
:从开始绘制线段到绘制到当前点所需经历的时间Color
:节点颜色(当连线时使用后一个节点的颜色作为线段的颜色)Nexts
:后续的节点AutoCalcTime
[EditorOnly]:表示是否允许控制器根据节点之间的距离自动计算Time字段的值
在UIPathway
对象中包含了一些属性,它们分别是:
LineWidth
:线段宽度(像素)HeadRadius
:线头半径(像素)LineTemplate
[EditorOnly]:线段模板,用于生成新的线段HeadTemplate
[EditorOnly]:线头模板,用于生成新的线头Waypoints
[EditorOnly]:当前已经添加的线段节点Refresh
[EditorOnly]:刷新数据(需要手动刷新数据才能检测到线段节点的变更)SpeedInPixel
[EditorOnly]:画线速度,用于计算节点的Time字段的值AutoCalcWaypointsTime
[EditorOnly]:自动计算节点的Time字段的值(只会影响AutoCalcTime==true
的节点)ColorOverride
[EditorOnly]:用于统一设置所有子节点的颜色OverrideColors
[EditorOnly]:将所有子节点的颜色设置为ColorOverride
字段的颜色SortWaypointsByTime
[EditorOnly]:是否根据到达时间属性来对线段节点进行排序,辅助调试
当设置好画线规则后,点击 UIPathway
对象的 Inspector 面板中 UIPathController
组件下的 Refresh 按钮,系统将会检索当前添加的节点。
然后进入 Play 模式,调用 UIPathController
对象的 Play()
、 Pause()
、 Clear()
方法分别可以实现播放、暂停和清除绘制功能。其中 Play()
方法能够接受一个可选的 time
参数,该参数可以让画线工具将线段绘制到指定时间的状态。
备注:
上文中提到的 HeadTemplate 和 LineTemplate 是两个可以独立于画线工具使用的组件。 HeadTemplate 对象带有一个用于绘制正多边形的 RegularPolygonUIMesh
脚本;LineTemplate 对象带有一个用于绘制线段的 LineUIMesh
脚本,该脚本也可以用于绘制矩形(调整线宽即可)。
【Unity】UI画线工具相关推荐
- 基于UGUI的Unity画线工具
基于UGUI的Unity画线工具 最近项目里需要做一个画线的小游戏,LineRenderer不是很好用,自己撸了一个小工具,效果如下 下面上代码 using System.Collections.Ge ...
- visio如何找到画线工具
visio如何找到画线工具 在进入Visio界面的时候,左侧有绘制箭头.流程图等工具,但是有时候流程图需要绘制自己定义的线条,此时可以调用绘图工具. 在菜单栏右键空白地方,选择绘图选项: 得到绘图工具 ...
- 【Unity实战100例】Unity屏幕画线,Unity屏幕画图HSJ绘画工具
这个工具,可以自定义线的粗细,可以自定义线的颜色,可以设置背景桌面的颜色,可以单线撤销也可以清楚屏幕,可以画虚线实线折线. 目录 一:制作画线工具 1.初始化左上右下点 2.绘制逻辑
- Unity画线工具--LineRander
新版的画线系统将颜色和材质渐变进行了整合,根据官方的文档,我们可以发现将这些整合到了Gradient这个类里面,这是一个专门用来处理渐变的类 private LineRenderer lr;void ...
- Unity GL画线的坑
Unity中使用GL画线时注意一个问题,材质设置pass的代码应该放在GL.Color后面.类似下面这样: void RenderLine(DTGizmos gizmos) {if (!gizmos) ...
- 通达信交易服务器修改,通达信画线交易价格修改,通达信画线工具详解
Q3:通达信成本价的修改问题? 你指的是通达信个人理财参数?还是委托交易设置? 都可以改回来. Q4:通达信里如何把成交明细数量换成金额显示,有知道怎么设置的吗 在工具栏的工具中-系统设置-设置1-成 ...
- Unity UI 画波形图
首先UI那就不能用lineRender了,然后研究了一下画像素,但是总感觉太费,而且锯齿很严重. 思来想去,还是用shader解决了. 先用粒子画一条loop线 摄像机渲染一张R通道图,512x512 ...
- Unity 图片画线Shader
上周分享了一个水墨风格的Shader,这周分享一个图片画点连线的Shader,话不多说,先看效果 我做的是一个百度人脸识别划线功能,图中所有蓝色的点都是通过百度人脸识别获取到的,要做的也只是把Vect ...
- [AHK]为通达信画线工具中的文字注释功能增加热键
不想每次都用鼠标去寻找定位这个功能,想热键直达. 方法一:点击坐标法,问题是分辨率不同会导致失效. SendMessage,0x111,4104,0,,ahk_class TdxW_MainFrame ...
最新文章
- 横竖屏切换时Activity的生命周期
- 随笔2:关于linux和python
- R语言连接MySQL报错:could not run statement: The used command is not allowed with this MySQL version
- 计算机网络第六章:应用层
- ASUS WL-500W企业级无线路由器试用
- 从Java面试官的角度,如何快速判断程序员的能力
- MySQL高级 - 案例 - 需求及环境准备
- ASP.NET Core使用功能开关控制路由访问(续)
- 面试题,你如何进行产品改版的?
- 补习系列(19)-springboot JPA + PostGreSQL
- 在Ant Design Pro(React)中使用ECharts
- 控制上网!!!(版本之1.0)
- apiDoc之api接口文档生成
- iptv管理系统php制作,云水日记-双子星IPTV管理系统搭建教程
- 2019中国旅游与酒店风云榜酒店业榜单公布
- web安全day3:文件共享服务器配置、共享权限和445端口
- 【实战记录分析】目录导航
- python对数正态分布函数_scipy,对数正态分布-参数
- java——API——ArrayList集合
- ByteBuffer详解(大概2333)
热门文章
- 网络安全知识:什么是最小特权原则?
- 转:一份关于镍锌电池的使用说明书[AA1500民用电池说明书]
- rancher2.x设置邮件通知,使用163邮箱来接收k8s集群中的报警信息以及来自rancher的通知信息
- mysql 建库与建表
- 程序员做视频,简单粗暴方法
- 博客随笔《文章目录——php》大纲
- android粉粉日记源码,【白水日记】git submodule在Android
- php 分段下载文件,php如何实现自动分段下载文件(代码示例)
- 以壬寅岁末,敬颂冬绥,癸卯甫至,奋楫笃行,写一篇给技术保障团队的感谢信,不少于五百字。...
- solidworks批量图号分离_教你如何将SolidWorks2016图号名称分离到零件属性中