- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个脚本,当一行文本接近该行的宽度时,它会尝试正确地换行文本(即,如果字符不是“-”或“”,则添加一个连字符在一个单词的字母之间(就像单词编辑软件的工作方式一样)但是当我尝试运行它时,我的一堆字符消失了。
这是我正在测试的文本,“畸变体具有奇异的解剖结构、奇怪的能力、外星人的思维方式,或三者的任意组合。”
但这些是我的测试脚本的结果
"找到信息 (' ','e','r','a','t','i','o','h','s','l','d' )"“发现没有信息 ('A','n','b','z','m','y',',','g','c','f','.')"“没有找到 ()”
并且仅使用具有可用信息的字符编译文本的输出是“erratio has a iarre aato strae ailities a ali idset or a oiatio o the three”
这是我的测试脚本
public class Test : MonoBehaviour
{
[SerializeField]
private Type m_Type;
// Not System.Type, is a custom class
[SerializeField]
private Font m_Font;
// Set to Arial for testing.
private List<string> m_FoundWithInfo;
private List<string> m_FoundWithoutInfo;
private List<string> m_DidntFind;
private void Awake()
{
m_FoundWithInfo = new List<string>();
m_FoundWithoutInfo = new List<string>();
m_DidntFind = new List<string>();
foreach (char c in m_Type.GetDescription())
{
if (m_Font.HasCharacter(c))
{
if (m_Font.GetCharacterInfo(c,
out CharacterInfo info, 14, FontStyle.Normal))
{
if (!m_FoundWithInfo.Contains($"'{c}'"))
{
m_FoundWithInfo.Add($"'{c}'");
}
}
else
{
if (!m_FoundWithoutInfo.Contains($"'{c}'"))
{
m_FoundWithoutInfo.Add($"'{c}'");
}
}
}
else
{
if (!m_DidntFind.Contains($"'{c}'"))
{
m_DidntFind.Add($"'{c}'");
}
}
}
Debug.Log($"Found with info ({string.Join(",", m_FoundWithInfo)})");
Debug.Log($"Found without info ({string.Join(",", m_FoundWithoutInfo)})");
Debug.Log($"Didnt Find ({string.Join(",", m_DidntFind)})");
}
}
如何才能使返回的文本与原始文本完全相同?
澄清一下,测试脚本只检查哪些必要字符没有关联任何 CharacterInfo。
最佳答案
Unity 字体管理对纹理进行操作以渲染字符,并且需要被告知要加载哪些字符以便将它们添加到字体纹理,然后才能在渲染文本时使用它们。除非您请求在您的示例之外加载字符,否则在字体中存在但没有可用信息的字符是因为当您查询字体的信息时没有将它们加载到字体纹理中。
Font.HasCharacter
检查您使用的字体是否定义了字符 - 如果返回 false,则该字符不存在于字体中并且无法加载使用。示例是检查仅包含拉丁字符的字体中的非拉丁符号。 Font.HasCharacter
返回 true 意味着您可以将该字符加载到字体纹理中。
Font.GetCharacterInfo
从当前加载的字体纹理中获取有关符号的信息 - 因此加载的字体可能有可用的字符,但未加载;如果您手动呈现文本,这将导致 Font.GetCharacterInfo
返回 false 并使字符不呈现。要解决这个问题,您需要使用 RequestCharactersInTexture 请求 Unity 加载您需要的角色。 - 文档还包含有关如何处理手动文本渲染(包括字体纹理更新)的示例。在加载字符之前,您将无法获取其字体信息,因为它不存在于当前使用的字体纹理中。调用 RequestCharactersInTexture
时,传递文本中出现的所有字符,无论它们是否已加载 - 这样可以确保 Font 在加载新字符时不会卸载之前加载的字符。
在制定解决方案以确定在哪里放置换行符时,您可能需要使用 kerning考虑到 - 根据周围的字符,字体可能希望在字符之间使用不同的距离,有时甚至使用不同的字形。如果您手动呈现文本,请确保在计算换行符之间对字距调整有一致的处理 - 没有字距调整是一个好的策略,只要您使用的字体不严重依赖于字距调整。如果你想支持字距调整,你应该处理子字符串而不是单个字符,并尝试找到为整行引入换行符的最佳点 - 一行的宽度可能不同于该行中出现的所有字符宽度的总和。
关于c# - Unity如何正确获取字符宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67597642/
这个问题已经有答案了: How to do case insensitive string comparison? (23 个回答) 已关闭 3 年前。 用户在我的输入栏中写入“足球”,然后执行第 6
啊,不习惯 javascript 中的字符串。 character_id= + id + correct= + correctOrIncorrect 这就是我需要制作成字符串的内容。如果您无法猜测字符
$(function() { var base_price = 0; CalculatePrice(); $(".math1").on('change', function(e) { Calc
我找不到任何文章回答问题:将Spinnaker部署到Spinnaker将管理的同一Kubernetes集群是否安全/正确?我主要是指生产,HA部署。 最佳答案 我认为Spinnaker和Kuberne
我正在使用MSVC在Windows上从源代码(官方源代码发布,而不是从仓库中)构建Qt5(Qt 5.15.0)。 我正在设置环境。变量,依赖项等,然后运行具有1600万个选项的configure,最后
我需要打印一个包含重复单词的数组。我的数组已经可以工作,但我不知道如何正确计算单词数。我已经知道,当我的索引计数器 (i) 为 49 时,并且当 (i) 想要计数到 50 时,我会收到错误,但我不知道
我正在遵循一个指南,该指南允许 Google map 屏幕根据屏幕尺寸禁用滚动。我唯一挣扎的部分是编写一个代码,当我手动调整屏幕大小时动态更改 True/False 值。 这是我按照说明操作的网站,但
我有一个类“FileButton”。它的目的是将文件链接到 JButton,FileButton 继承自 JButton。子类继承自此以使用链接到按钮的文件做有用的事情。 JingleCardButt
我的 friend 数组只返回一个数字而不是所有数字。 ($myfriends = 3) 应该是…… ($myfriends = 3 5 7 8 9 12). 如果我让它进入 while 循环……整个
这个问题在这里已经有了答案: Is there a workaround to make CSS classes with names that start with numbers valid?
我正在制作一个 JavaScript 函数,当调整窗口大小时,它会自动将 div 的大小调整为与窗口相同的宽度/高度。 该功能非常基本,但我注意到在调整窗口大小时出现明显的“绘制”滞后。在 JS fi
此问题的基本视觉效果可在 http://sevenx.de/demo/bootstrap-carousel/inc.carousel/tabbed-slider.html 获得。 - 如果你想看一看。
我明白,如果我想从函数返回一个字符串文字或一个数组,我应该将其声明为静态的,这样当被调用的函数被返回时,内容就不会“消亡”。 但我的问题是,当我在函数内部使用 malloc 分配内存时会怎样? 在下面
在 mySQL 数据库中存储 true/false/1/0 值最合适(读取数据消耗最少)的数据字段是什么? 我以前使用过一个字符长的 tinyint,但我不确定它是否是最佳解决方案? 谢谢! 最佳答案
我想一次读取并处理CSV文件第一行中的条目(例如打印)。我假设使用Unix风格的\n换行符,没有条目长度超过255个字符,并且(现在)在EOF之前有一个换行符。这意味着它是fgets()后跟strto
所以,我们都知道 -1 > 2u == true 的 C/C++ 有符号/无符号比较规则,并且我有一种情况,我想有效地实现“正确”比较。 我的问题是,考虑到人们熟悉的尽可能多的架构,哪种方法更有效。显
**摘要:**文章的标题看似自相矛盾。 本文分享自华为云社区《Java异常处理:如何写出“正确”但被编译器认为有语法错误的程序》,作者: Jerry Wang 。 文章的标题看似自相矛盾,然而我在“正
我有一个数据框,看起来像: dataDemo % mutate_each(funs(ifelse(. == '.', REF, as.character(.))), -POS) # POS REF
有人可以帮助我使用 VBScript 重新格式化/正确格式化带分隔符的文本文件吗? 我有一个文本文件 ^分界如下: AGREE^NAME^ADD1^ADD2^ADD3^ADD4^PCODE^BAL^A
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我是一名优秀的程序员,十分优秀!