起因
最近被告知需要对项目的所有管道进行流向标注,第一反应是给所有的管道替换材质球来实现目的,然而管道的mesh做的有些问题,直接替换材质球两边的流向是反的,只能退而求其次,使用lineRender给管道标注流向。然后我看着那几百根管道傻眼了。
方案
我是个非常懒的人,这种费力无聊还不讨好的工作不在我的考虑中,我决定做个插件,直接通过管道生成LineRender,在网上找了一下,发现根本没有人有这种奇怪的需求,那就只好自己造轮子了hhhh,于是便有了这篇博客。
思路
LineRender的核心是一串有序的位置,那我们要做的。便是在管道的mesh中找到这一串位置。
位置查找
说到位置,首先想到的就是mesh里面的顶点 vertices,通过mesh里的顶点,我们是不是能找出合适的作为LineRender的点呢,可mesh里的顶点太多了,没办法使用啊。
解决
我们可以通过分组的方式,根据距离,将mesh里的顶点分成N个组,然后每个组取其中的平均值,做为LineRender的点,emmm是个办法,但是。。。这个距离要怎么划分呢。
解决距离
我们可以取一个点,然后通过这个点去获取管道的直径,以直径做为顶点分组的依据,可行。这样LineRender的所有点位就都找到了。
排序
找到位置了,那我们要给这些位置排序,直接从第一个点开始,依次找最近的点好了,用过的就标记一下,ok,搞定了。也不难嘛hhh
后续
在我准备开始使用我的插件生成管道的时候,出现问题了。我遇到了这种管道