【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 参数,该参数可以让画线工具将线段绘制到指定时间的状态。

备注

上文中提到的 HeadTemplateLineTemplate 是两个可以独立于画线工具使用的组件。 HeadTemplate 对象带有一个用于绘制正多边形的 RegularPolygonUIMesh 脚本;LineTemplate 对象带有一个用于绘制线段的 LineUIMesh 脚本,该脚本也可以用于绘制矩形(调整线宽即可)。

【Unity】UI画线工具相关推荐

  1. 基于UGUI的Unity画线工具

    基于UGUI的Unity画线工具 最近项目里需要做一个画线的小游戏,LineRenderer不是很好用,自己撸了一个小工具,效果如下 下面上代码 using System.Collections.Ge ...

  2. visio如何找到画线工具

    visio如何找到画线工具 在进入Visio界面的时候,左侧有绘制箭头.流程图等工具,但是有时候流程图需要绘制自己定义的线条,此时可以调用绘图工具. 在菜单栏右键空白地方,选择绘图选项: 得到绘图工具 ...

  3. 【Unity实战100例】Unity屏幕画线,Unity屏幕画图HSJ绘画工具

    这个工具,可以自定义线的粗细,可以自定义线的颜色,可以设置背景桌面的颜色,可以单线撤销也可以清楚屏幕,可以画虚线实线折线. 目录 一:制作画线工具 1.初始化左上右下点 2.绘制逻辑

  4. Unity画线工具--LineRander

    新版的画线系统将颜色和材质渐变进行了整合,根据官方的文档,我们可以发现将这些整合到了Gradient这个类里面,这是一个专门用来处理渐变的类 private LineRenderer lr;void ...

  5. Unity GL画线的坑

    Unity中使用GL画线时注意一个问题,材质设置pass的代码应该放在GL.Color后面.类似下面这样: void RenderLine(DTGizmos gizmos) {if (!gizmos) ...

  6. 通达信交易服务器修改,通达信画线交易价格修改,通达信画线工具详解

    Q3:通达信成本价的修改问题? 你指的是通达信个人理财参数?还是委托交易设置? 都可以改回来. Q4:通达信里如何把成交明细数量换成金额显示,有知道怎么设置的吗 在工具栏的工具中-系统设置-设置1-成 ...

  7. Unity UI 画波形图

    首先UI那就不能用lineRender了,然后研究了一下画像素,但是总感觉太费,而且锯齿很严重. 思来想去,还是用shader解决了. 先用粒子画一条loop线 摄像机渲染一张R通道图,512x512 ...

  8. Unity 图片画线Shader

    上周分享了一个水墨风格的Shader,这周分享一个图片画点连线的Shader,话不多说,先看效果 我做的是一个百度人脸识别划线功能,图中所有蓝色的点都是通过百度人脸识别获取到的,要做的也只是把Vect ...

  9. [AHK]为通达信画线工具中的文字注释功能增加热键

    不想每次都用鼠标去寻找定位这个功能,想热键直达. 方法一:点击坐标法,问题是分辨率不同会导致失效. SendMessage,0x111,4104,0,,ahk_class TdxW_MainFrame ...

最新文章

  1. 横竖屏切换时Activity的生命周期
  2. 随笔2:关于linux和python
  3. R语言连接MySQL报错:could not run statement: The used command is not allowed with this MySQL version
  4. 计算机网络第六章:应用层
  5. ASUS WL-500W企业级无线路由器试用
  6. 从Java面试官的角度,如何快速判断程序员的能力
  7. MySQL高级 - 案例 - 需求及环境准备
  8. ASP.NET Core使用功能开关控制路由访问(续)
  9. 面试题,你如何进行产品改版的?
  10. 补习系列(19)-springboot JPA + PostGreSQL
  11. 在Ant Design Pro(React)中使用ECharts
  12. 控制上网!!!(版本之1.0)
  13. apiDoc之api接口文档生成
  14. iptv管理系统php制作,云水日记-双子星IPTV管理系统搭建教程
  15. 2019中国旅游与酒店风云榜酒店业榜单公布
  16. web安全day3:文件共享服务器配置、共享权限和445端口
  17. 【实战记录分析】目录导航
  18. python对数正态分布函数_scipy,对数正态分布-参数
  19. java——API——ArrayList集合
  20. ByteBuffer详解(大概2333)

热门文章

  1. 网络安全知识:什么是最小特权原则?
  2. 转:一份关于镍锌电池的使用说明书[AA1500民用电池说明书]
  3. rancher2.x设置邮件通知,使用163邮箱来接收k8s集群中的报警信息以及来自rancher的通知信息
  4. mysql 建库与建表
  5. 程序员做视频,简单粗暴方法
  6. 博客随笔《文章目录——php》大纲
  7. android粉粉日记源码,【白水日记】git submodule在Android
  8. php 分段下载文件,php如何实现自动分段下载文件(代码示例)
  9. 以壬寅岁末,敬颂冬绥,癸卯甫至,奋楫笃行,写一篇给技术保障团队的感谢信,不少于五百字。...
  10. solidworks批量图号分离_教你如何将SolidWorks2016图号名称分离到零件属性中