问题描述
对于我想用这些立方体做的事情,我需要自己创建网格,这样我才能知道哪些顶点是哪个顶点并且能够操纵几何体。
但为什么我的脚本立方体(左侧)在阴影方面与 Unity 的看起来如此不同?
两者都使用相同的材料。
我猜这和 phong 有关系吗?
这是我用来创建自己的多维数据集的代码:
private void CreateCube()
{
GameObject cubeObject;
cubeObject = Instantiate(prefab,new Vector3(0,0),Quaternion.identity);
Vector3[] vertices;
int[] triangles;
vertices = new Vector3[8];
// BottOM VERTICES
vertices[0] = new Vector3(0,0); //BBL
vertices[1] = new Vector3(1,0); //BBR
vertices[2] = new Vector3(0,1); //BTL
vertices[3] = new Vector3(1,1); //BTR
// TOP VERTICES
vertices[4] = new Vector3(0,1,0); //TBL
vertices[5] = new Vector3(1,0); //TBR
vertices[6] = new Vector3(0,1); //TTL
vertices[7] = new Vector3(1,1); //TTR
triangles = new int[36];
// BottOM TRIANGLES
triangles[0] = 1; //BBR
triangles[1] = 2; //BTL
triangles[2] = 0; //BBL
triangles[4] = 2; //BTL
triangles[3] = 3; //BTR
triangles[5] = 1; //BBR
// TOP TRIANGLES
triangles[6] = 4; //TBL
triangles[7] = 6; //TTL
triangles[8] = 7; //TTR
triangles[9] = 5; //TBR
triangles[10] = 4; //TBL
triangles[11] = 7; //TTR
// BACK TRIANGLES
triangles[12] = 5; //TBR
triangles[13] = 0; //BBL
triangles[14] = 4; //TBL
triangles[15] = 1; //BBR
triangles[16] = 0; //BBL
triangles[17] = 5; //TBR
// FRONT TRIANGLES
triangles[18] = 6; //TTL
triangles[19] = 2; //BTL
triangles[20] = 3; //BTR
triangles[21] = 6; //TTL
triangles[22] = 3; //BTR
triangles[23] = 7; //TTR
// LEFT TRIANGLES
triangles[24] = 6; //TTL
triangles[25] = 4; //TBL
triangles[26] = 2; //BTL
triangles[27] = 0; //BBL
triangles[28] = 2; //BTL
triangles[29] = 4; //TBL
// RIGHT TRIANGLES
triangles[32] = 7; //TTR
triangles[31] = 5; //TBR
triangles[30] = 1; //BBR
triangles[35] = 1; //BBR
triangles[34] = 3; //BTR
triangles[33] = 7; //TTR
Mesh cubeMesh = new Mesh();
cubeObject.GetComponent<MeshFilter>().sharedMesh = cubeMesh;
cubeMesh.Clear();
cubeMesh.vertices = vertices;
cubeMesh.triangles = triangles;
cubeMesh.Recalculatenormals();
}
预制件只是一个带有空网格过滤器和带有材质(默认材质)的网格渲染器的游戏对象。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)