首页 > 解决方案 > 如何在 Unity 中将文本添加到生成的网格中

问题描述

在此处输入图像描述

我在代码中创建了这个二十面体,这样每个三角形都是它自己的网格,而不是一个有 20 个面的实体网格。我想在大致居中的每个三角形的外侧添加文本。对于简单的视觉效果,请考虑 DnD 的 20 面骰子。

限制是,虽然这个版本是一个只有 20 个面的简单二十面体,但编写脚本以便可以递归地对其进行细化以添加更多面并将其变成一个 icosphere。我仍然希望文本随着三角形数量的增加而缩放和居中。

我目前有一个预制的“三角形”对象,其中包含每个三角形所需的脚本以及一个网格过滤器/网格渲染器。

场景中唯一的另一件事是一个空的 GameObject 附加脚本,该脚本创建三角形并充当所有三角形的父级。

我尝试了各种将文本添加到三角形预制件中的方法。我一直遇到的问题是,由于预制件中不存在网格本身,我不确定如何定位或缩放文本以使其出现在正确的位置。

我不确定是否需要在运行时使用三角形完全生成文本,或者是否有办法将其添加到预制件中,然后对其进行更新,以便在创建三角形时进行缩放和定位。

到目前为止,我的谷歌搜索只真正为我带来了涉及场景中永久对象的结果,没有关于如何处理在运行时生成的网格。

标签: c#unity3dmesh

解决方案


文本是以 png 或其他图像格式保存的纹理吗?因为如果是这种情况,您可以创建一个具有包含文本的纹理的材质。下一步是为每个顶点定义其 UV,以这种方式将纹理包裹在三角形上。如果必须动态生成文本,我现在能想到的最好方法是向三角形添加一个文本网格(因为它是一个预制件)并访问组件。


推荐阅读