【发布时间】:2021-12-25 18:31:34
【问题描述】:
我一直在试图弄清楚如何将碰撞器添加到线条渲染器中,因为在我的游戏中我试图让它在敌人与线条碰撞时消失,但我不知道如何将碰撞器添加到该行。如果我遗漏了什么,请告诉我!非常感谢! (全部在 2d 中)
【问题讨论】:
我一直在试图弄清楚如何将碰撞器添加到线条渲染器中,因为在我的游戏中我试图让它在敌人与线条碰撞时消失,但我不知道如何将碰撞器添加到该行。如果我遗漏了什么,请告诉我!非常感谢! (全部在 2d 中)
【问题讨论】:
你可以试试LineRenderer.BakeMesh。
像这样使用它:
public yourLineRendererComponent;
public MeshCollider meshCollider; //attached to the lineRenderer gameobject or child
private Mesh mesh = new Mesh();
void setLrCollider() {
LineRenderer lineRenderer = yourLineRendererComponent;
lineRenderer.startWidth = 1; //optional
lineRenderer.endWidth = 1; //optional
/*****optional to set the points with code*****/
// canbe done in the inspector but points needs to be set for bakemesh towork
Vector3 lineRendererPathVector3Array = new Vector3[];
lineRendererPathVector3Array [0] = new Vector3(0.0f,0.0f,0.0f);
lineRendererPathVector3Array [1] = new Vector3(0.1f,0.1f,0.1f);
lineRendererPathVector3Array [2] = new Vector3(0.2f,0.3f,0.4f);
lineRendererPathVector3Array [3] = new Vector3(0.5f,0.5f,0.5f);
lineRenderer.positionCount = lineRendererPathVector3Array.Length;
lineRenderer.SetPositions(lineRendererPathVector3Array);
/*****optional to set the points with code finish*****/
//below lines create a mesh collider with the line renderer's shape
lineRenderer.BakeMesh(mesh, Camera.main);
meshCollider.sharedMesh = mesh;
}
【讨论】:
setLrCollider,它会的。您需要为每次更新安排您的 Vector3[] 数组