UGUI图文混排超链接

目录

  • 一、LinkSpriteText
  • 二、EmojiText
    • 1、EmojiText
    • 2、支持超链接的EmojiText出现的问题
  • 三、通用版EmojiText
    • 1、使用方法

之前做web项目有个需求需要通过某种方式打开试题中所提到的关键字介绍,当时是在试题旁边放个小按钮点击打开,后来要求把图标放在题干中,或者直接点击关键字打开介绍,这个就要用到图文混排了

上网搜了一番,高版本新项目推荐Text MeshPro,对于一些低版本老项目就只能基于Text实现了,原理我就不过多赘述了,说一下我从网上下载这么多版本发现的一些问题,最后给出一个可用的版本

一、LinkSpriteText

链接:LinkSpriteText

使用quad进行占位并且把相关参数设置到sprite,最后填充,可以自定义表情大小,支持高版本,支持超链接,不过一个Text只支持一个超链接,稍微改改也能支持多个
在这里插入图片描述
使用起来就是在写富文本, name就是图片名字,统一放在Resources下固定路径,超链接默认蓝色, 我自己添加的小功能,可以统一图片大小为FontSize,自定义或统一超链接的颜色,缺点就是只支持静态表情不支持动态表情

二、EmojiText

1、EmojiText

链接:EmojiText
这个支持动态表情不支持超链接,把表情打成图集,然后传给shader重新渲染,这个不知道是不是最初版,网上有很多实现了超链接的EmojiText版本

2、支持超链接的EmojiText出现的问题

①说是高版本Text没有完整的顶点数据,会出现错乱的情况导致已经不能使用了
②虽然支持超链接的版本有很多,但是出现以下组合情况的时候,超链接点击触发事件的包围盒区域就会计算异常:
在超链接的首尾部添加表情,在超链接中添加表情会导致计算错误,我把可点击区域用绿框画出来了
③超链接后面表情显示不出来
在这里插入图片描述

三、通用版EmojiText

优化了上述问题并且支持2017-2020版本,参考了:
LinkSpriteText
UGUI图文混排——基于Unity2019版本
在这里插入图片描述

1、使用方法

①将表情放入EmojiText/Input文件夹,看图注意表情图片设置,动图需要带后缀
在这里插入图片描述
在这里插入图片描述
②根据图片(全部统一大小)大小修改EmojiBuilder脚本参数,然后build资源
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
③将资源拖给shader,Emoji count of every line为图集每行的个数,FrameSpeed是动图速度
在这里插入图片描述
④Canvas添加shader通道
在这里插入图片描述
⑤在Output和Resources下有个emoji文件,这俩数据一样,输入里面的key就会显示相应的表情,超链接是以a标签的形式,里面支持嵌套颜色跟表情
在这里插入图片描述
在这里插入图片描述
工程我会在随后上传

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/58410.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++奇遇记】函数探幽(上)

🎬 博客主页:博主链接 🎥 本文由 M malloc 原创,首发于 CSDN🙉 🎄 学习专栏推荐:LeetCode刷题集 数据库专栏 初阶数据结构 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如…

誉天程序员-瀑布模型-敏捷开发模型-DevOps模型比较

文章目录 2. 项目开发-开发方式2.1. 瀑布开发模型2.2. 敏捷开发模型2.3. DevOps开发模型2.4. 区别 自增主键策略1、数据库支持主键自增自增和uuid方案优缺点 2. 项目开发-开发方式 由传统的瀑布开发模型、敏捷开发模型,一跃升级到DevOps开发运维一体化开发模型。 …

swagger相关问题

swagger相关问题 swagger版本为&#xff1a; <dependency><groupId>com.github.xiaoymin</groupId><artifactId>swagger-bootstrap-ui</artifactId><version>1.9.6</version> </dependency> <dependency><groupId&…

Grafana集成prometheus(4.Grafana添加预警)

上文已经完成了grafana对prometheus的集成及数据导入&#xff0c;本文主要记录grafana的预警功能&#xff08;以内存为例&#xff09; 添加预警 添加入口&#xff08;2个&#xff09; databorard面板点击edit&#xff0c;下方有个Alert的tab&#xff0c;创建Alert rules依赖…

IDEA偶尔编译的时候不识别lombok

偶尔IDEA启动项目的时候会识别不到lombok,识别不到get()跟set()方法 方案 在settings添加下面代码 -Djps.track.ap.dependenciesfalse

自然语言处理学习笔记(二)————语料库与开源工具

目录 1.语料库 2.语料库建设 &#xff08;1&#xff09;规范制定 &#xff08;2&#xff09;人员培训 &#xff08;3&#xff09;人工标注 3.中文处理中的常见语料库 &#xff08;1&#xff09;中文分词语料库 &#xff08;2&#xff09;词性标注语料库 &#xff08;3…

我理解的音响设备音频放大器地线环路共地回路造成交流声干扰哼声的分析,信号接地,工业仪表接地的问题

我理解的音响设备音频放大器地线环路共地回路造成交流声干扰哼声的分析&#xff0c;信号接地&#xff0c;工业仪表接地的问题 wxleasyland 2023.8 一、地线环路造成交流声哼声 家里插座中有一个的PE地线&#xff0c;相当于大地。 设备1的“信号地”接到家里三脚插座的PE地线…

【雕爷学编程】MicroPython动手做(39)——机器视觉之图像基础2

MixPY——让爱(AI)触手可及 MixPY布局 主控芯片&#xff1a;K210&#xff08;64位双核带硬件FPU和卷积加速器的 RISC-V CPU&#xff09; 显示屏&#xff1a;LCD_2.8寸 320*240分辨率&#xff0c;支持电阻触摸 摄像头&#xff1a;OV2640&#xff0c;200W像素 扬声器&#…

unity TextMeshPro 富文本

<b>粗体标签</b> <i>斜体标签</i> <u>下划线标签</u> <s>删除线标签</s> <sup>上标标签</sup>前面后边上标签 5<sup>。</sup>C <sub>下标标签&#xff0c;如&#xff1a;</sub>H<sub&…

【练】要求定义一个全局变量 char buf[] = “1234567“,创建两个线程,不考虑退出条件,打印buf

要求定义一个全局变量 char buf[] "1234567"&#xff0c;创建两个线程&#xff0c;不考虑退出条件&#xff0c;另&#xff1a; A线程循环打印buf字符串&#xff0c;B线程循环倒置buf字符串&#xff0c;即buf中本来存储1234567&#xff0c;倒置后buf中存储7654321. 不…

动手学深度学习—卷积神经网络(原理解释+代码详解)

目录 1. 从全连接层到卷积层2. 图像卷积2.1 互相关运算2.2 卷积层2.3 图像中目标的边缘检测2.4 学习卷积核2.5 特征映射和感受野 3. 填充和步幅3.1 填充3.2 步幅 4. 多输入多输出通道4.1 多输入通道4.2 多输出通道4.3 11卷积核 5. 汇聚层5.1 最大汇聚层和平均汇聚层5.2 填充和步…

c 语言解析 时间字符串

#include <iostream> #include <ctime>int main(int argc, char *argv[]) {struct tm timeinfo;char cur_time[] "current time: 2021-09-06 23:50:13";// 解析时间到timeinfo中strptime(cur_time, "current time: %Y-%m-%d %H:%M:%S", &…

【快应用】adbutton如何直接下载广告而不跳落地页再下载

【关键词】 原生广告、adbutton、下载 【问题背景】 快应用中的原生广告推出了adbutton组件来直接下载广告app&#xff0c;在使用的时候&#xff0c;点击adbutton按钮的安装文案&#xff0c;不是直接下载广告app&#xff0c;而是跳转到落地页后直接下载&#xff0c;这种情形该…

Redis主从复制、哨兵机制、集群分片

目录 一.主从复制 1.概述 2.主从架构相比于单点架构的优势 3.主从复制原理和工作流程 第一次同步 第一阶段&#xff1a;建立链接、协商同步 第二阶段&#xff1a;主服务器同步数据给从服务器 第三阶段&#xff1a;主服务器发送新写操作命令给从服务器 基于长连接的命…

vscode 通过mongoose 连接mongodb atlas

了解mongodb 的项目结构 1.代表集群名称 > 2.代表数据库名称>3.代表每个 collection名称 三者范围为从大到小的关系 &#xff08;一对多&#xff09;。每个集群有不同的连接地址、用户信息&#xff08;Database Access&#xff09;、ip配置信息&#xff08;Network Acce…

Modbus TCP转Profinet网关modbus tcp转以太网

大家好&#xff0c;今天我们来聊一聊如何使用捷米特的Profinet转modbusTCP协议转换网关在博图上进行非透传型配置。 1, 首先&#xff0c;我们需要安装捷米特JM-TCP-PN的GSD文件&#xff0c;并根据现场设备情况配置modbusTCP地址。然后&#xff0c;在博图中添加该GSD文件&#x…

应用在测温仪中的数字温度传感芯片

测温仪&#xff08;thermometric indicator&#xff09;&#xff0c;是温度计的一种&#xff0c;用红外线传输数字的原理来感应物体表面温度&#xff0c;操作比较方便&#xff0c;特别是高温物体的测量。应用广泛&#xff0c;如钢铸造、炉温、机器零件、玻璃及室温、体温等各种…

一零六六、线程池、锁

线程池&#xff1a; 管理线程创建&#xff0c;销毁的一系列池子 如何创建线程池&#xff1f; ExecutorService executor Executors.newFixedThreadPool(n); 创建线程有多种方法&#xff0c;为何要用线程池&#xff1f; 减少性能开销,每次执行任务都新建线程造成cpu资源浪费…

Shell脚本学习-MySQL单实例和多实例启动脚本

已知MySQL多实例启动命令为&#xff1a; mysqld_safe --defaults-file/data/3306/my.cnf & 停止命令为&#xff1a; mysqladmin -uroot -pchang123 -S /data/3306/mysql.sock shutdown 请完成mysql多实例的启动脚本的编写&#xff1a; 问题分析&#xff1a; 要想写出脚…