【Unity按点生成图形】

Unity3D如何使用Mesh生成自定义多边形


众所周知U3D中任何图形都是有N个三角面构成
所以我们生成多边形也就是生成N个三角面连接而成的
首先我们有N个点这N个点按顺序连接而成为一个多边形
而Mesh中有两个API主要用来绘制三角面
mesh.vertices即图形的各个顶点
他是一个Vector3数组用来表示各个顶点的位置
mf.mesh.triangles即三角面的连接方式
他是一个List<int>
我觉得主要的难点在于N个点如何保证绘制的三角面最少且完整的绘制出了图形这个目前我暂时并没有想到更好的算法如果有人写出了更好的算法希望能@我一下

// An highlighted block
 MeshFilter mf = obj.AddComponent<MeshFilter>();
 MeshRenderer mr = obj.AddComponent<MeshRenderer>();
 Mesh mesh = new Mesh();
 mf.mesh = mesh;    
 obj.transform.localPosition = new Vector3(0, 0, -1);
 //data即顶点数组
 Vector3[] point = data;       
 List<int> iss = new List<int>();

 for (int j = 0; j < point.Length - 1; j++)
 {
     iss.Add(j);
     iss.Add(j+1);
     iss.Add(point.Length - 1-j);
 }
 mr.material.color = Color.black;
 mf.mesh.vertices = point;
 mf.mesh.triangles = iss.ToArray();
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值