永发信息网

如何用代码变换网格

答案:2  悬赏:50  手机版
解决时间 2021-02-04 03:29
如何用代码变换网格
最佳答案
动态创建一个网格:

MeshFilter meshFilter = GetComponent();
Mesh mesh = meshFilter.sharedMesh;

if (mesh == null){
meshFilter.mesh = new Mesh();
mesh = meshFilter.sharedMesh;
}

Vector3 p0 = new Vector3(0,0,0);
Vector3 p1 = new Vector3(1,0,0);
Vector3 p2 = new Vector3(0,1,0);
Vector3 p3 = new Vector3(0,0,1);

// clear mesh of current data
mesh.Clear();

// set vertices
mesh.vertices = new Vector3[]{p0,p1,p2,p3};

// set
mesh.triangles = new int[]{
0,1,2,
0,2,3,
2,1,3,
0,3,1
};
mesh.RecalculateNormals();
mesh.RecalculateBounds();
mesh.Optimize();
修改现有的顶点 (对于脸也类似):

// mesh.vertices returns a copy
Vector3[] vert_copy = mesh.vertices;
vert_copy[0] = new Vector3(10,11,12);
vert_copy[1] = new Vector3(13,14,15);

// reassign new vertices to mesh
mesh.vertices = vert_copy;

mesh.RecalculateNormals();
mesh.RecalculateBounds();
mesh.Optimize();
当你重新计算法线和界限的时候,这些调用变得复杂。如果转变的时候网格不会与其他网格互动, 你可以推迟RecalculateBounds()直到转变结束。相似的,如果你预计只有很小的每帧的转变,可以以每隔一帧或者每300毫秒限制ecalculateNormals()。
全部回答
动态创建一个网格: meshfilter meshfilter = getcomponent(); mesh mesh = meshfilter.sharedmesh; if (mesh == null){ meshfilter.mesh = new mesh(); mesh = meshfilter.sharedmesh; } vector3 p0 = new vector3(0,0,0); vector3 p1 = new ve
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
MIC飞镖汇怎么去啊,我要去那办事
发软的意思是什么啊?知道的请说下!
钢筋抽筋什么意思?
永顺食品商行地址在哪,我要去那里办事
一圆经过点A(1,3),且与x轴相切于点B(-2,0),求
PaulLee保伯丽咖啡地址在什么地方,我要处理
北京酷骑单车押金哪个能退得退不了怎么办呢是
腰椎间盘突出,两条腿痛,还有一条觉得筋短,
围棋盘有多少个格?
邀遮的意思是什么啊?知道的请说下!
2001年,经过十多年的艰苦谈判,中国正式成为
sport模式和ds档作用是什么
双开电梯门什么用
YOUNG咖啡(齐大购物中心店)地址有知道的么?
绿循环外圈海量众神3.8 我都完常模式 求攻略
推荐资讯
天津去哪验光配镜好?
请问如何估测自己眼睛的度数?
具有IDC ICP证件的和没有的区别
北海花店在什么地方啊,我要过去处理事情
携程网上的欧铁通票有效期是两个月还是六个月
肖蛇射手男和肖猴狮子女
彝族女孩漂亮吗?
化州市江湖财政所这个地址在什么地方,我要处
教你如何切豆腐 豆腐切成千条丝
重庆凤梧商贸有限公司配送中心地址好找么,我
填空题若关于x的方程x的平方加2倍括号a减1乘
双柏树村地址有知道的么?有点事想过去
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?