通過Mesh生成網格

2021-10-03 01:36:12 字數 1481 閱讀 7590

gameobject obj = new gameobject("go");

meshfilter mf = obj.addcomponent();

meshrenderer mr = obj.addcomponent();

//新增乙個材質球

mr.sharedmaterial = resources.load("material");

//第乙個網格(矩形)

vector3 vectorarray = new vector3[5];

vectorarray[0].set(0.0f, 0.0f, 0.0f);

vectorarray[1].set(0.0f, -1.0f, 0.0f);

vectorarray[2].set(-3.0f, -1.0f, 0.0f);

vectorarray[3].set(-3.0f, 0.0f, 0.0f);

vectorarray[4].set(0.0f, 0.0f, 0.0f);

//頂點配置

listintarray = new list();

for (int i = 0; i < vectorarray.length - 1; i++)

intarray.add(vectorarray.length - 1);

intarray.add(0);

//第二個網格(三角形)

vector3 vectorarray2 = new vector3[4];

vectorarray2[0].set(1.0f, 0.0f, 0.0f);

vectorarray2[1].set(0.0f, 1.0f, 0.0f);

vectorarray2[2].set(1.0f, 1.0f, 0.0f);

vectorarray2[3].set(1.0f, 0.0f, 0.0f);

//頂點配置

listintarray2 = new list();

//起點是之前所所有頂點之和

for (int i = vectorarray.length; i vectortotal = new list();

vectortotal.addrange(vectorarray);

vectortotal.addrange(vectorarray2);

//整合所有頂點配置

listindicestotal = new list();

indicestotal.addrange(intarray);

indicestotal.addrange(intarray2);

//mesh頂點

mf.mesh.vertices = vectortotal.toarray();

//mesh頂點資料資訊(配置)

mf.mesh.setindices(indicestotal.toarray(), meshtopology.lines, 0);

生成效果

網格(mesh)簡化

我已經耗費了好幾天簡化地圖 感覺上我似乎會階段性地遇到這個問題。在重新簡化的過程中,我意識到這個問題說起來比我想象中的會簡單 在乙個給定範圍 也就是,乙個線段的集合和既不是線段交點也不是線段的端點的自由點 內我們可以迭代地用一條 捷徑 線段替代鄰近的線段進行簡化 例如 用線段pr代替pq和qr線段 ...

合併Mesh網格

1 對於具有相同材質的物件,可以通過把他們的mesh網格 mesh filter 合併在一起,然後禁用被合併的物件,來達到減少drawcall的效果 void start transform.getcomponent mesh new mesh transform.getcomponent mesh...

Unity場景擴充套件,生成Mesh

場景擴充套件 案例1 onscenegui 實現如下效果 customeditor typeof test 函式作用是test物件能在編輯器啟用 public class myeditor editor string strpath editorutility.openfilepanelwithfi...