39 lines
1003 B
C#
39 lines
1003 B
C#
using UnityEngine;
|
||
|
||
public class LineRendererToMesh : MonoBehaviour
|
||
{
|
||
public LineRenderer lineRenderer; // 引用 LineRenderer 组件
|
||
public MeshCollider meshCollider; // 引用 MeshCollider 组件
|
||
Mesh mesh;
|
||
private void Awake()
|
||
{
|
||
// 如果没有指定 LineRenderer,尝试获取当前 GameObject 上的 LineRenderer
|
||
if (lineRenderer == null)
|
||
{
|
||
lineRenderer = GetComponent<LineRenderer>();
|
||
}
|
||
|
||
// 如果没有指定 MeshCollider,尝试获取当前 GameObject 上的 MeshCollider
|
||
if (meshCollider == null)
|
||
{
|
||
meshCollider = gameObject.AddComponent<MeshCollider>();
|
||
}
|
||
|
||
// 创建一个新的 Mesh 对象
|
||
mesh = new Mesh();
|
||
|
||
}
|
||
|
||
|
||
|
||
public void BakeMesh()
|
||
{
|
||
|
||
// 使用 BakeMesh 函数生成 Mesh
|
||
// 这里使用 Camera.main 作为相机,并且应用 LineRenderer 的变换
|
||
lineRenderer.BakeMesh(mesh, Camera.main, true);
|
||
|
||
// 将生成的 Mesh 赋值给 MeshCollider
|
||
meshCollider.sharedMesh = mesh;
|
||
}
|
||
} |