UGUI图文混排超链接

news2024/12/28 19:23:41

目录

  • 一、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标签的形式,里面支持嵌套颜色跟表情
在这里插入图片描述
在这里插入图片描述

工程下载

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小程序swiper结合swiper-item实现banner轮播

swiper 基础库 1.0.0 开始支持,低版本需做兼容处理。 微信 Windows 版:支持 微信 Mac 版:支持 渲染框架支持情况:Skyline (使用最新 Nighly 工具调试)、WebView 功能描述 滑块视图容器。其中只可放置swip…

ssh连接之xshell软件远程连接主机无法通过password登录

一、背景概述 使用xshell软件ssh连接远程控制系统时,输入用户名后,发现默认不可通过password登录,但是可通过Public Key和Keyboard Interactive方式进行连接。网上查询到解决办法,尝试ok之后记录一下问题解决。 二、问题解决步骤…

信号的频谱分析与信号滤波

信号的频谱分析与信号滤波 试验目的:熟悉信号的频谱分析与信号滤波。 信号的频谱分析 例、建立一个含50Hz和120Hz幅值为2的正弦信号(sin),然后叠加一个幅值为1的随机信号,利用Matlab分析其频谱。并滤除噪声信号和12…

多平台打包快捷方式

一个项目会有好几个环境&#xff0c;不同环境用的时候总是需要改配置&#xff0c;比较麻烦&#xff0c;这次给大家讲一个简单的方法&#xff0c;关于Springboot项目在不同平台下的快捷打包方式。需要配合maven。 在pom文件中加入如下配置&#xff1a; <profiles><pr…

通俗一点讲什么是嵌入式?

嵌入式系统&#xff0c;就是&#xff0c; 在其它电子产品或设备中&#xff0c;加入(嵌入)一个小小的"计算机"。 目的是为了&#xff0c;人机交互、采集传感器数据、处理数据、控制执行机构和通信。这些是"计算机"擅长的。 这个小小的"计算机"…

STM32 低功耗-停止模式

STM32 停止模式 文章目录 STM32 停止模式第1章 低功耗模式简介第2章 停止模式简介2.1 进入停止模式2.1 退出停止模式 第3章 停止模式程序部分总结 第1章 低功耗模式简介 在 STM32 的正常工作中&#xff0c;具有四种工作模式&#xff1a;运行、睡眠、停止以及待机模式。 在系统…

C 题 母亲身心健康对婴儿成长的影响【2023 华数杯全国大学生数学建模竞赛题目】思路+完整代码

C 题 母亲身心健康对婴儿成长的影响【2023 华数杯全国大学生数学建模竞赛题目】思路完整代码 一、赛题题目&#xff1a; 许多研究表明&#xff0c;母亲的身体指标和心理指标对婴儿的行为特征和睡眠质 量有影响&#xff0c;请问是否存在这样的规律&#xff0c;根据附件中的数据…

七、Spring 面向切面编程(AOP)学习总结

文章目录 一、初识面向切面编程&#xff08;AOP&#xff09;1.1 什么是 AOP1.2 AOP的应用场景1.3 Aop 在 Spring 中的作用1.3.1 Aop 的核心概念 1.4 使用 Spring 实现 AOP1.4.1 方式一&#xff1a;使用 Spring API 接口实现 AOP 【主要是SpringAPI接口实现】1.4.2 方式二&#…

C++教程从入门到实战(c++基础入门,看这一篇就够了)

1. 安装 g编译器 是编译C代码使用的编译器&#xff0c;不要使用gcc了。 在用户目录中单独创建一个文件夹存放下载后的3个安装文件&#xff0c;然后进入到目录中执行下面命令 cd 文件夹 sudo dpkg -i *.deb 本地安装 sudo apt-get install g 在线安装 2. C的语言特点及优势 c wi…

一道名题-(csp 儒略日)的心得与技巧

这道题&#xff0c;我做了三年&#xff0c;平均每年做一次&#xff0c;我来讲讲我的心得。 读题 题面很长&#xff0c;细节很多&#xff0c;我们需要耐心细心的读&#xff0c;此时多花一点时间是划得来的。 我们得出大致关系如下 历法公历日常用历儒略历公元前公元后历法公历…

springBoot项目导入外部jar包

一、将外部的jar包复制到指定文件夹 二、修改pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocati…

利用abapGit的离线模式导出、导入开发对象

1. 背景 abapGit是为ABAP服务器开发的开源Git客户端&#xff0c;用于在ABAP系统之间导入和导出ABAP对象。 使用abapGit&#xff0c;可以将ABAP对象从任何系统导出到另一个系统&#xff0c;通常是从本地系统导出到云&#xff0c;或者从一个云系统导出到另一个云系统。 当然从…

红帽8.2版本CSA题库:第一题配置网络设置

红帽认证工程师是业界公认的最权威的Linux认证之一。RHCE 是世界上第一个面向Linux 的认证考试&#xff0c;它不是一个普通的认证测试&#xff0c;和其他操作系统认证考试相比&#xff0c;它没有笔试&#xff0c;全部是现场实际操作&#xff0c;所以RHCE成了业界公认的最难的认…

机器学习笔记 - YOLO-NAS 最高效的目标检测算法之一

一、YOLO-NAS概述 YOLO(You Only Look Once)是一种对象检测算法,它使用深度神经网络模型,特别是卷积神经网络,来实时检测和分类对象。该算法首次在 2016 年由 Joseph Redmon、Santosh Divvala、Ross Girshick 和 Ali Farhadi 发表的论文《You Only Look Once: Unified, Re…

自监督去噪:Noise2Self原理分析及实现 (Pytorch)

文章地址:https://arxiv.org/abs/1901.11365 代码地址: https://github.com/czbiohub-sf/noise2self 要点   Noise2Self方法不需要信号先验信息、噪声估计信息和干净的训练数据。唯一的假设就是噪声在测量的不同维度上表现出的统计独立性&#xff0c;而真实信号表现出一定的…

亚马逊云科技七项生成式AI新产品生成式AI,为用户解决数据滞后等难题

7月27日&#xff0c;亚马逊云科技在纽约峰会上一连发布了七项生成式AI创新&#xff0c;涵盖了从底层硬件到工具、软件、再到生态的全方位更新&#xff0c;成为它在该领域迄今最全面的一次升级展示&#xff0c;同时也进一步降低了生成式AI的使用门槛。 亚马逊云科技凭借自身端到…

vue实现全屏、退出全屏方法

有效解决问题 : Failed to execute ‘exitFullscreen‘ on ‘Document‘: Document not active 在未全屏的情况下触发exitFullscreen&#xff0c;会报这个错。 <el-button class"screen" click"toggleFullscreen">全屏</el-button> fullscre…

Unity 编辑器选择器工具类Selection 常用函数和用法

Unity 编辑器选择器工具类Selection 常用函数和用法 点击封面跳转下载页面 简介 在Unity中&#xff0c;Selection类是一个非常有用的工具类&#xff0c;它提供了许多函数和属性&#xff0c;用于操作和管理编辑器中的选择对象。本文将介绍Selection类的常用函数和用法&#xff…

Redis面试题2

Redis面试题-2 10、统计高并发网站每个网页每天的 UV 数据&#xff0c;结合Redis你会如何实现&#xff1f; 选用方案&#xff1a;HyperLogLog 如果统计 PV 那非常好办&#xff0c;给每个网页一个独立的 Redis 计数器就可以了&#xff0c;这个计数器的 key 后缀加上当天的日期…

loguru 日志库

1 下载地址 loguru PyPI 2 安装 pip install loguru 3 简单使用 from loguru import logger# 当前目录下创建 log 文件夹&#xff0c;保留 3 天 logger.add("./Log/INFO_{time:YYYY-MM-DD}.log", encoding"utf-8", retention"3 day")logger.…