首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Collider Unity将线渲染转换为3d网格

使用Collider Unity将线渲染转换为3d网格
EN

Stack Overflow用户
提问于 2021-01-05 01:29:44
回答 1查看 1.5K关注 0票数 0

我已经环顾四周,还没有找到一个有效的答案,所以您的帮助将不胜感激!

当前使用此脚本时,该行将创建一个空白网格过滤器。我得到的最接近的是偏移简单的块,它根本不遵循形状网格。我需要这个,以便能够绘制的形状与线触发声音的碰撞

代码语言:javascript
复制
GameObject go = new GameObject($"LineRenderer");
goLineRenderer = go.AddComponent<LineRenderer>();  

 Mesh lineBakedMesh = new Mesh(); //Create a new Mesh (Empty at the moment)
go.AddComponent<MeshFilter>();  
go.GetComponent<MeshFilter>().mesh = lineBakedMesh;
 goLineRenderer.BakeMesh(lineBakedMesh,Camera.main, true); //Bake the line mesh to our mesh variable
     go.AddComponent<MeshCollider>().sharedMesh = lineBakedMesh; //Set the baked mesh to the MeshCollider
     go.GetComponent<MeshCollider>().convex = true; //You need it convex if the mesh have any kind of holes
EN

回答 1

Stack Overflow用户

发布于 2021-01-05 03:30:34

在我看来,您正在创建一个新的LineRenderer组件,但是您没有在它上面设置任何点来形成一条直线。

在设置正确的LineRenderer.positionCount目标量后,可以使用LineRenderer.SetPosition设置单个点,或使用LineRenderer.SetPoisitons一次性指定所有点。特别是如果你打算在运行时更新这些点。

否则,通过Inspector简单地根据您的需要添加和配置组件可能会更容易。

既然您说您已经通过检查器配置了一个LineRenderer:您是否更想使用

代码语言:javascript
复制
goLineRenderer = GetComponent<LineRenderer>();  

为了获得已经添加到与此脚本相同的GameObjects中的组件?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65567073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档