[Unity]给场景中的3D字体TextMesh增加描边方案一
取你的文本对象,简单地添加以下脚本:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;public class TextOutline : MonoBehaviour {public float pixelSize = 1;public Color outlineColor = Color.black;public bool resolutionDependant = false;public int doubleResolution = 1024;RectTransform rectTransform;private Text textMesh;private Color originalColor;void Start() {textMesh = GetComponent<Text>(); rectTransform = this.GetComponent<RectTransform>();originalColor = textMesh.color;for (int i = 0; i < 8; i++) {GameObject outline = new GameObject("outline", typeof(Text));outline.transform.parent = transform;outline.transform.localScale = new Vector3(1, 1, 1);RectTransform rectTransformChild = outline.GetComponent<RectTransform>();rectTransformChild.anchoredPosition = rectTransform.anchoredPosition;rectTransformChild.anchoredPosition3D = rectTransform.anchoredPosition3D;rectTransformChild.anchorMax = rectTransform.anchorMax;rectTransformChild.anchorMin = rectTransform.anchorMin;rectTransformChild.offsetMax = rectTransform.offsetMax;rectTransformChild.offsetMin = rectTransform.offsetMin;rectTransformChild.pivot = rectTransform.pivot;rectTransformChild.sizeDelta = rectTransform.sizeDelta;}Reposition();}void Reposition() {Vector3 screenPoint = Camera.main.WorldToScreenPoint(transform.position);outlineColor.a = textMesh.color.a * textMesh.color.a;textMesh.color = outlineColor;// copy attributesfor (int i = 0; i < transform.childCount; i++) {Text other = transform.GetChild(i).GetComponent<Text>();other.color = outlineColor;other.text = textMesh.text;other.alignment = textMesh.alignment;other.font = textMesh.font;other.fontSize = textMesh.fontSize;other.fontStyle = textMesh.fontStyle;other.lineSpacing = textMesh.lineSpacing;bool doublePixel = resolutionDependant && (Screen.width > doubleResolution || Screen.height > doubleResolution);Vector3 pixelOffset = GetOffset(i) * (doublePixel ? 2.0f * pixelSize : pixelSize);Vector3 worldPoint = Camera.main.ScreenToWorldPoint(screenPoint + pixelOffset);other.transform.position = worldPoint;if(i == transform.childCount-1){other.color = originalColor;}}}Vector3 GetOffset(int i) {switch (i % 8) {case 0: return new Vector3(0, 1, 0);case 1: return new Vector3(1, 1, 0);case 2: return new Vector3(1, 0, 0);case 3: return new Vector3(1, -1, 0);case 4: return new Vector3(0, -1, 0);case 5: return new Vector3(-1, -1, 0);case 6: return new Vector3(-1, 0, 0);case 7: return new Vector3(-1, 1, 0);default: return Vector3.zero;}}
}
相关文章:
[Unity]给场景中的3D字体TextMesh增加描边方案一
取你的文本对象,简单地添加以下脚本: using UnityEngine; using System.Collections; using UnityEngine.UI;public class TextOutline : MonoBehaviour {public float pixelSize 1;public Color outlineColor Color.black;public bool resolutionDependant fal…...
TDengine(taos)数据库导出历史数据
业务需求:导出某个站点的累计充电量,累计放电量,光伏总放电量,进线总功率的所有数据‘ 1、登录taos,使用存数据的库; 提示Database changed;即为使用成功; 2、找到你想要导出的字段…...
算法进修Day-37
算法进修Day-37 73. 矩阵置零 难度:中等 题目要求 给定一个 _m_ x _n_ 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例1 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[…...
服务器之日常整活
文章目录 一,序二、服务器相关流水帐未完,待补充 一,序 假如你有一台服务器,你最想做哪些事? 等等,什么叫假如你有一台服务器,假如只有一台,肯定我想搞第二台,顺便第三台…...
交互式 Web 应用 0 基础入门
初探 Gradio:轻松构建交互式 Web 应用 文章目录 初探 Gradio:轻松构建交互式 Web 应用Why Gradio?安装 Gradio创建交互式界面1. gr.Interface2. gr.Blocks 强大的组件库输入输出组件控制组件布局组件 示例交互式数据可视化多组件同时(嵌套&a…...
JSONP的安全性较差,那么在跨域情况下,有没有其他更安全的替代方案呢?
在跨域情况下,为了保证安全性,有几种更安全的替代方案可以考虑使用: 1:CORS(Cross-Origin Resource Sharing): CORS 是一种现代化的跨域解决方案,通过在服务器端设置响应头来控制跨…...
Slax Linux 获得增强的会话管理和启动参数选项
Slax Linux 的创建者和维护者托马斯-马特吉切克(Tomas Matejicek)在自己生日这天(生日快乐!)发布了其小巧便携的 GNU/Linux 发行版的新版本,带来了各种增强功能和错误修复。 新发布的 Slax Linux 版本&…...
C/C++新冠疫情死亡率 2020年9月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
目录 C/C新冠疫情死亡率 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C新冠疫情死亡率 2020年9月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 2020年全世界爆发了新冠疫情,请…...
Adobe Photoshop 基本操作
PS快捷键 图层 选择图层 Ctrl T:可以对图层的大小和位置进行调整 填充图层 MAC: AltBackspace (前景) or CtrlBackspace (背景) WINDOWS: AltDelete (前景) or CtrlDelete (背景) 快速将图层填充为前景色或背景色 平面化图层(盖印图层)…...
SpringMVC原理及核心组件
一、SpringMVC原理及核心组件 1、 Spring MVC的工作原理 Spring MVC 是一个对javaWeb中Servlet 简化和封装, 1.首先SpringMVC 配置DispatcherServlet 来接受所有的请求,我们通过DispatcherServlet 响应的所有数据,DispatcherServlet 是Htt…...
【rk3568-linux】 rk3568x_linux-- 编译说明
概述 一个好的安装教程能够帮助开发者完成更便捷、更快速的开发。书山有路勤为径,学海无涯苦作舟。我是秋知叶i、期望每一个阅读了我的文章的开发者都能够有所成长。 开发环境 开发环境:ubuntu18 文章目录 概述开发环境一、选择型号二、全自动编译三、…...
模拟计算器编程教程,中文编程开发语言工具编程实例
模拟计算器编程教程,中文编程开发语言工具编程实例 中文编程系统化教程,不需英语基础。学习链接 https://edu.csdn.net/course/detail/39036 课程安排:初级1 1 初级概述 2 熟悉构件取值赋值 3 折叠式菜单滑动面板编程 4 自定…...
Spring Security漏洞防护—HTTP 安全响应头
一、默认的 Security Header Spring Security提供了 一套默认的安全HTTP响应头,以提供安全默认值。虽然这些头信息中的每一个都被认为是最佳实践,但应该注意的是,并不是所有的客户端都使用这些头信息,所以鼓励进行额外的测试。 …...
Plooks大型视频在线一起看网站源码
在前段时间,因为想和异地的朋友一起看电影,但是发现有电影的地方没有一起看功能,有一起看功能的视频网站没有电影,所以就想自己做一个一起看网站,于是就有了Plooks。 Plooks是一个完整的视频网站,其中包括…...
图像处理中底层、高层特征、上下文信息理解
1.图像的语义信息: 图像的语义分为视觉层、对象层和概念层。 视觉层即通常所理解的底层,即颜色、纹理和形状等等,这些特征都被称为底层特征语义; 对象层即中间层,通常包含了属性特征等,就是某一对象在某一时刻的状态&a…...
负载均衡的算法(静态算法与动态算法)
1.静态算法 静态算法是不考虑服务器动态负载的算法,包括: (1)轮转算法:轮流将服务请求(任务)调度给不同的节点(即:服务器)。 (2)加…...
mac安装jdk
1、下载jdk(我的电脑要下载arm版,截图不对) Java Downloads | Oraclehttps://www.oracle.com/java/technologies/downloads/#jdk17-mac 2、双击安装...
WIN11+OPENCV4.8 编译及下载失败处理方法
1. 基础准备 1. 下载Opencv和Contrib库 Opencv:Releases opencv/opencv GitHub Contrib:Tags opencv/opencv_contrib GitHub 2. 安装Visual Studio 或 MinGW64 MinGW:Tags opencv/opencv_contrib GitHub 这里安装1.12.0 MinGW 。 以…...
万宾科技智能井盖传感器怎么使用?
时代在进步,科技在更新,人们身边的万事万物都在随着时代的脚步不断的前进。各种各样高科技技术在城市基础设施建设的过程中得到应用,很多智能产品不仅施工方便,而且可以向政府部门提供精准的数据,提高了相关管理人员的…...
Server Name Indication(SNI),HTTP/TLS握手过程解析
Server Name Indication(SNI)是一种TLS扩展,用于在TLS握手过程中传递服务器的域名信息。在未使用SNI之前,客户端在建立TLS连接时只能发送单个IP地址,并且服务器无法知道客户端请求的具体域名。这导致服务器需要使用默认…...
LangChain与向量库集成:Document Loaders与Text Splitters
上周三凌晨两点,我被一个奇怪的召回问题卡住了:明明在PDF里写得很清楚的配置项,用相似问题去查向量库,总是返回一些边缘内容。打开调试日志一看,发现切出来的文本片段里,前半段是某个章节的结尾,…...
AI 智能体可以成为你的科研助理?
想象一下,你的实验室里来了一群"AI 实习生"——它们不用睡觉、不会犯错、能同时读 100 篇论文、还能自己设计实验。这不是科幻电影,而是 2026 年 Nature Biotechnology 最新发表的"Agentic AI"(智能体 AI)正在…...
华为eNSP实战:通过路由器物理接口高效打通VLAN间通信
1. VLAN间通信基础与华为eNSP环境搭建 刚接触网络工程的朋友可能对VLAN间通信感到困惑。简单来说,VLAN就像大楼里的不同楼层,而路由器就是连接这些楼层的电梯。我在实际项目中遇到过不少新手配置VLAN路由的问题,最常见的就是物理接口配置错误…...
【AI】RAG的原理
目录 前言 一、为什么会有RAG 二、RAG完整流程 阶段一:离线建库(准备知识) 阶段二:在线问答 三、RAG和微调的区别 微调(Fine-tuning) RAG 总结 前言 上一篇博客中,介绍了大模型的幻觉是…...
AI 模型压缩与推理加速
AI模型压缩与推理加速:让智能更高效 近年来,人工智能技术飞速发展,深度学习模型在图像识别、自然语言处理等领域取得了显著成果。随着模型规模的不断扩大,计算资源和存储需求也急剧增加,导致模型在部署时面临效率低、…...
LeetCode--454.四数相加 II(哈希表)
题目描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足: 0 < i, j, k, l < n nums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1: 输入:num…...
直播技术:B站第三方推流方案的实现与应用探索
直播技术:B站第三方推流方案的实现与应用探索 【免费下载链接】bilibili_live_stream_code 用于在准备直播时获取第三方推流码,以便可以绕开哔哩哔哩直播姬,直接在如OBS等软件中进行直播,软件同时提供定义直播分区和标题功能 项…...
【Ease UI】2026-04-03组件更新:新增组件xly-file-preview文件预览组件
🚀 即插即用的 Vue 3 业务组件库,让中后台开发回归简单 Ease UI 是一套为「快速复制」而生的 Vue 3 业务组件库。每个组件都是独立的 .vue 单文件,不依赖任何外部样式或工具函数,直接复制到你的项目即可使用。它仅依赖 Element P…...
百川2-13B+OpenClaw:学术论文参考文献自动校对系统
百川2-13BOpenClaw:学术论文参考文献自动校对系统 1. 为什么需要参考文献自动化校对 去年写博士论文时,我曾在参考文献格式上栽过跟头。距离截稿还有48小时,导师突然指出我的参考文献列表存在三处格式不一致——有的作者名全大写࿰…...
如何提升B站Windows体验?5个技巧让BiliBili-UWP客户端播放更流畅
如何提升B站Windows体验?5个技巧让BiliBili-UWP客户端播放更流畅 【免费下载链接】BiliBili-UWP BiliBili的UWP客户端,当然,是第三方的了 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBili-UWP BiliBili-UWP作为第三方B站UWP客户…...
