当前位置: 首页> 教育> 幼教 > 长沙网站建设大全_汉服网站设计模板_微信营销平台有哪些_windows优化大师官方

长沙网站建设大全_汉服网站设计模板_微信营销平台有哪些_windows优化大师官方

时间:2025/7/17 13:39:38来源:https://blog.csdn.net/ttod/article/details/142882100 浏览次数:0次
长沙网站建设大全_汉服网站设计模板_微信营销平台有哪些_windows优化大师官方

TriangleNet下载如下:

TriangleNet

效果如下:

代码参考如下:

using System.Collections.Generic;
using UnityEngine;
using TriangleNet.Geometry;public class TestTriangleNet : MonoBehaviour
{[SerializeField]Material material;void Start(){Vector3[] vs = new Vector3[625];for (int i = 0; i < vs.Length; i++){vs[i] = new Vector3(i % 25, 0, i / 25);}Polygon poly = new();foreach (var v in vs){poly.Add(new Vertex(v.x, v.z));}//设置外轮廓Vertex[] vertexOut = new Vertex[] { new(1, 10), new(3, 16), new(10, 19), new(16, 16), new(19, 10), new(16, 3), new(10, 1), new(3, 8) };poly.Add(new Contour(vertexOut), false);//设置洞洞1Vertex[] vertexIn01 = new Vertex[] { new(2, 10), new(4, 12), new(6, 10), new(4, 8) };poly.Add(new Contour(vertexIn01), true);//设置洞洞2Vertex[] vertexIn02 = new Vertex[] { new(12, 6), new(14, 8), new(16, 6), new(14, 4) };poly.Add(new Contour(vertexIn02), true);var options = new TriangleNet.Meshing.ConstraintOptions{SegmentSplitting = 1,ConformingDelaunay = false,Convex = false};//生成Triangle网格var triangleMesh = ExtensionMethods.Triangulate(poly, options);List<Vector3> listVert = new();foreach (Vertex v in triangleMesh.Vertices){listVert.Add(new Vector3(v.X, 0, v.Y));}List<int> listTriangle = new();foreach (var tm in triangleMesh.Triangles){listTriangle.Add(tm.GetVertexID(1));listTriangle.Add(tm.GetVertexID(0));listTriangle.Add(tm.GetVertexID(2));}Mesh mesh = new(){vertices = listVert.ToArray(),triangles = listTriangle.ToArray()};mesh.RecalculateNormals();MeshFilter filter = GetComponent<MeshFilter>();if (!filter) filter = gameObject.AddComponent<MeshFilter>();filter.sharedMesh = mesh;MeshRenderer meshRenderer = GetComponent<MeshRenderer>();if(!meshRenderer)meshRenderer = gameObject.AddComponent<MeshRenderer>();meshRenderer.material = material;}
}

如果不想中间挖洞,使用下面的代码即可:

​
using System.Collections.Generic;
using UnityEngine;
using TriangleNet.Geometry;
using static UnityEditor.Progress;public class TestTriangleNet : MonoBehaviour
{[SerializeField]Material material;void Start(){Vector3[] vs = new Vector3[625];for (int i = 0; i < vs.Length; i++){vs[i] = new Vector3(i % 25, 0, i / 25);}Polygon poly = new();foreach (var v in vs){poly.Add(new Vertex(v.x, v.z));}var triangleMesh = poly.Triangulate();List<Vector3> listVert = new();foreach (Vertex v in triangleMesh.Vertices){listVert.Add(new Vector3(v.X, 0, v.Y));}List<int> listTriangle = new();foreach (var tm in triangleMesh.Triangles){listTriangle.Add(tm.GetVertexID(1));listTriangle.Add(tm.GetVertexID(0));listTriangle.Add(tm.GetVertexID(2));}Mesh mesh = new(){vertices = listVert.ToArray(),triangles = listTriangle.ToArray()};mesh.RecalculateNormals();MeshFilter filter = GetComponent<MeshFilter>();if (!filter) filter = gameObject.AddComponent<MeshFilter>();filter.sharedMesh = mesh;MeshRenderer meshRenderer = GetComponent<MeshRenderer>();if(!meshRenderer)meshRenderer = gameObject.AddComponent<MeshRenderer>();meshRenderer.material = material;}
}

关键字:长沙网站建设大全_汉服网站设计模板_微信营销平台有哪些_windows优化大师官方

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: