Unity中mesh的合併

2021-08-22 08:32:57 字數 912 閱讀 5903

最近做的專案,美術給的資源很散,好多mesh需要用同乙個mesh collider,所以需要自己合併mesh,然後加乙個mesh collider

做了乙個外掛程式,在hierachy中選中物體,那麼它以及它的子物體的mesh,會合併成為乙個mesh,並且儲存到project中,可以多選,選擇幾個物體就會生成幾個合併的mesh

[menuitem("plugins/合併選擇mesh")]

static void combinemesh()

mesh mesh = new mesh();

mesh.name = objs[j].name;

mesh.combinemeshes(combine, true);

string path = @"assets/model/combinemesh/" + mesh.name + ".asset";

assetdatabase.createasset(mesh, path);

}assetdatabase.refresh();

editorutility.displaydialog("combinemesh", "combine successfully!", "ok", "");

}

**很簡單,都是untiy的一些api,生成的mesh可在model/combinemesh資料夾下找到

注意事項:

1, 呼叫assetdatabase.createasset在project中建立一些東西的時候,要使用相對路徑,不可以用絕對路徑

正確示範     string path = @"assets/model/combinemesh/" + mesh.name + ".asset";

2,unity的乙個mesh,最多可以包含65536個定點,所以如果合併的mesh定點數超過65536的時候,會報錯

合併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...

Unity使用Mesh元件畫圓環

呼叫 畫圓環 依附物件 中心點 分割段數 內徑 厚度,向外擴的寬度 材質 public static void drawring gameobject gameobject,vector3 center,int segments,float innerradius,float thickness,m...