Text 用白色填充字体字符?

Text 用白色填充字体字符?,text,unity3d,fonts,unity5,Text,Unity3d,Fonts,Unity5,我的字体有一个空的“内部”。如下所示: 白色背景字体: 蓝色背景字体: 我们如何使文本的“内部”始终为白色,而不使用背景?我将使用Unity游戏引擎 当然,我不能编辑.ttf文件。正如@itchee所指出的:TTF字体总是只有一种颜色。它只能指定不透明部分和透明部分(从技术上讲,仅指定不透明部分,其他所有部分都是透明的)。显示该字体的应用程序可以为不透明部分选择一种颜色。但它不能使“部分黑色,部分白色”。我的问题是如何使用Unity游戏引擎实现我想要的。欢迎使用任何C#脚本 正如@fafas

我的字体有一个空的“内部”。如下所示:

白色背景字体:

蓝色背景字体:

我们如何使文本的“内部”始终为白色,而不使用背景?我将使用Unity游戏引擎

当然,我不能编辑.ttf文件。正如@itchee所指出的:TTF字体总是只有一种颜色。它只能指定不透明部分和透明部分(从技术上讲,仅指定不透明部分,其他所有部分都是透明的)。显示该字体的应用程序可以为不透明部分选择一种颜色。但它不能使“部分黑色,部分白色”。我的问题是如何使用Unity游戏引擎实现我想要的。欢迎使用任何C#脚本


正如@fafase所说,一个填充算法,对于每个字符,寻找包围区域并填充它们是理想的。

虽然可以编辑TTF字体,但不能将“背景”置为白色


TTF字体只能指定不透明和透明部分(从技术上讲,仅指定不透明部分,其他所有部分都是透明的)。显示该字体的应用程序可以为不透明部分选择一种颜色。但它不能使“一些部分为黑色,一些部分为白色”。

您可以使用位图字体。 unity本机不支持它们,因此您可以使用名为的资产存储中的资产。如果你不愿意付那么多钱,我找到了一本不错的教程

但到目前为止,我最灵活的想法,也许我会做的是创建第二种字体,你可以把它放在第一种字体后面。您可以将原始字体保持为黑色。第二种字体是适合填充形状的简单形状,并且可以设置为所需的任何颜色。下面是我的意思的简要说明:


您可以使用创建自定义字体。这可能会花费您相当多的时间,但它将持续、简单地工作,并且不会对脚本进行太多更改。

这是什么字体?它是您制作的字体,还是您获得的字体,还是您从内置windows/mac获得的字体?或者这仅仅是一个图像?“字体”可以通过许多方式实现,就像游戏引擎一样复杂;你至少需要包括一个设置的屏幕截图,让人们知道你在做什么。@oolɐzǝzǝqoq这是我从互联网上下载的字体。所以,我怎样才能用Unity游戏引擎实现我想要的?我能想到的唯一方法是为你想要使用的每个角色使用一个精灵地图,并用精灵合成你的文本。谢谢你的回答,但这个选项效率不高,而且会浪费空间…但这就是你的答案,这是您在不久前发布此问题时告诉您的。您正在等待一个似乎不存在的解决方案。所以你要么使用别人告诉你的东西,要么放弃。如果你喜欢,你可以想出一个填充算法,对于每个字母,它寻找包围的区域并填充它们。把赏金定为500,也许有人会花些时间在上面。@fafase我为了赏金放弃了我所有的分数,我问这个问题已经5天了。。。我真的需要一个答案,因为我的项目的最后期限还有几天(顺便说一句,你的填充算法想法听起来很有趣。不幸的是,这个选项是个噱头。正如@fafase所说,对于每个字符,一个填充算法,寻找包围区域并填充它们是理想的。任何其他可靠的方法都是受欢迎的。填充算法也是个噱头(更好的词可能是hacky、workaround或polyfill)。填充算法将不必要地复杂、缓慢,而且难以制作。不要让自己的算法过于复杂。如果你这样做,你将遇到问题和复杂性。你将如何制作复杂的颜色检测填充算法,与你填充形状和创建第二种字体的速度相比?选择对我来说似乎很清楚。我不知道derstand,但是根据你的建议,我必须为每个字符创建一个特定的填充…这应该比创建一个所谓的填充算法要少得多。无论如何,你必须从tff字体读取像素值(这样算法就知道在哪里填充颜色),但它无法读取这些值,因为ttf字体文件实际上是一个svg。据我所知,我甚至不认为这样的算法是可能的。而且,不要等到有人为你编写脚本。如果你想让别人为你编写脚本,请花钱雇他们。这是一个帮助程序员的网站,而不是为他们工作。