我添加了一个网格:
Mesh mesh;
void Awake() {
mesh = GetComponent<MeshFilter>().mesh;
}
现在它显示在屏幕上和所有内容上,但我直接通过它。我添加了MeshCollider
,但None (Mesh)
显示Mesh
,这可能是原因,但我不知道如何修复它。
答案 0 :(得分:0)
您需要设置网格顶点和uv。 你有一个例子来制作一架飞机。 需要将xpos,ypos和zpos替换为所需点的坐标poisiton。
GameObject plane = new GameObject("Plane");
MeshFilter meshFilter = (MeshFilter)plane.AddComponent(typeof(MeshFilter));
Mesh mymesh = new Mesh();
mymesh.name = "MyCustomMesh";
mymesh.vertices = new Vector3[] {
new Vector3(xpos, ypos, zpos),
new Vector3(xpos, ypos, zpos),
new Vector3(xpos, ypos, zpos),
new Vector3(xpos, ypos, zpos),
};
mymesh.uv = new Vector2[] {
new Vector2 (0, 0),
new Vector2 (0, 1),
new Vector2(1, 1),
new Vector2 (1, 0)
};
mymesh.triangles = new int[] { 0, 1, 2, 0, 2, 3};
mymesh.RecalculateNormals();
meshFilter.mesh = mymesh;
MeshRenderer renderer = plane.AddComponent(typeof(MeshRenderer)) as MeshRenderer;