0

我有一个单一的网格游戏对象,它本质上是一条向上/向下弯曲和倾斜的长线。我想要做的是在指定的距离间隔沿这条线生成一些文本。假设沿线每 100 个单位出现一些文本。如果它是一条直线,那会很容易,但是曲线和斜坡让我很失望。

我通过执行以下操作检索了创建此网格的顶点:

model.GetComponent<MeshFilter>().mesh.vertices

然后我通过循环它们并执行以下操作将它们转换为世界空间:

meshFilter.gameObject.transform.TransformPoint(vertices[i])

现在,这些顶点不是均匀分布的。对于斜率和曲线,有很多顶点。对于较直的部分,数量较少。但是这些直线部分仍然略有不同(通常是 Y 值的 ~.10)。最初我循环并跟踪距离以找到最接近间隔的顶点,但那时我认为它们是均匀分布的。

这是模型的一部分:

在此处输入图像描述

我在这里将所有顶点都涂成黑色,以显示它们在曲线/斜率与~直线部分的压缩程度:

在此处输入图像描述

这是模型的检查员,只是以防万一:

在此处输入图像描述

4

1 回答 1

1

您使用静态单个网格吗?
在您的解决方案中,我认为问题出在顶点。你必须沿着你的线找到顶点并忽略它们的垂直组,这太难了。
如果你的网格可能被玩家改变,我建议你使用 Trail Render Component,获取它的顶点并解决一个简单的背包问题来放置你的角色(建议你使用 TextmeshPro)

于 2020-04-17T18:34:30.570 回答