沿着弯曲的3D网格均匀放置标签

问题描述 投票:0回答:1

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

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

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

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

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

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

这里是模型的一部分:

enter image description here

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

enter image description here

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

enter image description here

unity3d line distance mesh qvector3d
1个回答
0
投票

您是否使用静态单个网格?在您的解决方案中,我认为问题是顶点。您必须沿着线找到顶点,而忽略它们的垂直组,这太困难了。如果您的网格物体可能被玩家改变了,建议您使用“轨迹渲染组件”,获取其顶点并解决一个简单的Knapsack problem来放置角色(建议您使用TextmeshPro)

© www.soinside.com 2019 - 2024. All rights reserved.