微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Collider Unity 将 Line Render 转换为 3d Mesh

如何解决使用 Collider Unity 将 Line Render 转换为 3d Mesh

我环顾四周,但没有找到有效的答案,因此非常感谢您的帮助!

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

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

解决方法

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

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

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


既然您说您已经通过 Inspector 配置了一个 LineRenderer:您是否更愿意使用

goLineRenderer = GetComponent<LineRenderer>();  

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。