2017-12-18 10 views
0

나는 메쉬 행함 추가 한 :프로그래밍 방식의 메쉬를 만드는 방법은 무엇입니까?

Mesh mesh; 
void Awake() { 
    mesh = GetComponent<MeshFilter>().mesh; 
} 

가 지금은 스크린과 모두에 나타납니다,하지만 나는 바로 그것을 통해 가을. MeshCollider을 추가했지만 Mesh에 대해 None (Mesh)이 표시됩니다. 이유가있을 수는 있지만 수정 방법을 모르겠습니다.

+1

메쉬에'mesh' 속성을 설정해야합니다. – Draco18s

+0

mesh-collider가 사용하는 메쉬 설정 ->'GetComponent (). sharedMesh = mesh;'https://docs.unity3d.com/ScriptReference/MeshCollider-sharedMesh.html – yes

답변

0

메쉬 정점과 UV를 설정해야합니다. 여기에는 하나의 비행기를 만드는 예가 있습니다. xpos, ypos 및 zpos를 원하는 포인트 좌표로 대체해야합니다.

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;