您的位置:首页 > 移动开发 > Unity3D

Unity3d修炼之路:用Mesh绘制一个Cube

2016-02-18 13:53 459 查看
#pragma strict
function Awake(){

var pMeshFilter : MeshFilter = gameObject.AddComponent(typeof(MeshFilter)) as MeshFilter;//网格过滤器
var pMeshRender : MeshRenderer = gameObject.AddComponent(typeof(MeshRenderer)) as MeshRenderer;//网格渲染
var pMesh : Mesh = pMeshFilter.mesh as Mesh;	//网格过滤器的实例化的Mesh

//u3d中绘制图形都是三角形绘制法。顺时针。所以先记录全部的点,然后在确定三角形绘制的顺序

var pVector : Vector3 [] = new Vector3[36];
var pTriangles : int [] = new int[pVector.length];

//forword
pVector[0] = new Vector3(0.0f,0.0f,0.0f);
pVector[1] = new Vector3(0.0f,1.0f,0.0f);
pVector[2] = new Vector3(1.0f,0.0f,0.0f);

pVector[3] = new Vector3(1.0f,0.0f,0.0f);
pVector[4] = new Vector3(0.0f,1.0f,0.0f);
pVector[5] = new Vector3(1.0f,1.0f,0.0f);
//back
pVector[6] = new Vector3(0.0f,0.0f,1.0f);
pVector[7] = new Vector3(0.0f,1.0f,1.0f);
pVector[8] = new Vector3(1.0f,0.0f,1.0f);

pVector[9] = new Vector3(1.0f,0.0f,1.0f);
pVector[10] = new Vector3(0.0f,1.0f,1.0f);
pVector[11] = new Vector3(1.0f,1.0f,1.0f);
//left
pVector[12] = new Vector3(0.0f,0.0f,0.0f);
pVector[13] = new Vector3(0.0f,0.0f,1.0f);
pVector[14] = new Vector3(0.0f,1.0f,1.0f);

pVector[15] = new Vector3(0.0f,1.0f,1.0f);
pVector[16] = new Vector3(0.0f,1.0f,0.0f);
pVector[17] = new Vector3(0.0f,0.0f,0.0f);
//right
pVector[18] = new Vector3(1.0f,0.0f,0.0f);
pVector[19] = new Vector3(1.0f,0.0f,1.0f);
pVector[20] = new Vector3(1.0f,1.0f,0.0f);

pVector[21] = new Vector3(1.0f,1.0f,0.0f);
pVector[22] = new Vector3(1.0f,0.0f,1.0f);
pVector[23] = new Vector3(1.0f,1.0f,1.0f);
//up
pVector[24] = new Vector3(0.0f,1.0f,0.0f);
pVector[25] = new Vector3(0.0f,1.0f,1.0f);
pVector[26] = new Vector3(1.0f,1.0f,0.0f);

pVector[27] = new Vector3(1.0f,1.0f,0.0f);
pVector[28] = new Vector3(0.0f,1.0f,1.0f);
pVector[29] = new Vector3(1.0f,1.0f,1.0f);
//down
pVector[30] = new Vector3(0.0f,0.0f,0.0f);
pVector[31] = new Vector3(0.0f,0.0f,1.0f);
pVector[32] = new Vector3(1.0f,0.0f,0.0f);

pVector[33] = new Vector3(1.0f,0.0f,0.0f);
pVector[34] = new Vector3(0.0f,0.0f,1.0f);
pVector[35] = new Vector3(1.0f,0.0f,1.0f);

for(var nIndex : int = 0; nIndex < pTriangles.length;++nIndex){
pTriangles[nIndex] =nIndex;
}
pMesh.Clear();
pMesh.vertices = pVector;//网格顶点
pMesh.triangles = pTriangles;//三角形
pMesh.RecalculateBounds();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: