Unity3d mesh合併,網格合併具體用法教程
Chinar 堅持將簡單的生活方式,帶給世人! (擁有更好的閱讀體驗 —— 高解析度使用者請根據需求調整網頁縮放比例) |
助力快速理解 Unity 中合併網格的概念與流程 為新手節省寶貴的時間,避免採坑! |
Chinar 教程效果:
1
Merge Mesh —— 合併網格
Unity 開發中,如果我們需要做效能優化
或者是一些專案需求,需要將零散的幾個物體進行合併,成為一個整體的模型
而由於模型的樣貌是由 MeshFilter 決定,上色由 MeshRender 決定
所以我們只需將幾個零散模型的 MeshFilter 進行合併,就能得到一個整體的模型
合併後的網格效果:
2
Create GameObject —— 在場景中建立一個空物體
Hierarchy 層次面板中,建立一個空物體,並將指令碼檔案掛載它上邊
將你需要的零散的模型,設定為其子物體
執行指令碼,即可完成合並!
注意:
指令碼中我登出掉的指令碼之前的程式碼,足夠生成新模型的網格,且執行後就已經生成了!
using UnityEngine;
/// <summary>
/// 合併網格
/// </summary>
public class ChinarMergeMesh : MonoBehaviour
{
void Start()
{
MergeMesh();
}
/// <summary>
/// 合併網格
/// </summary>
private void MergeMesh()
{
MeshFilter[] meshFilters = GetComponentsInChildren<MeshFilter>(); //獲取 所有子物體的網格
CombineInstance[] combineInstances = new CombineInstance[meshFilters.Length]; //新建一個合併組,長度與 meshfilters一致
for (int i = 0; i < meshFilters.Length; i++) //遍歷
{
combineInstances[i].mesh = meshFilters[i].sharedMesh; //將共享mesh,賦值
combineInstances[i].transform = meshFilters[i].transform.localToWorldMatrix; //本地座標轉矩陣,賦值
}
Mesh newMesh = new Mesh(); //宣告一個新網格物件
newMesh.CombineMeshes(combineInstances); //將combineInstances陣列傳入函式
gameObject.AddComponent<MeshFilter>().sharedMesh = newMesh; //給當前空物體,新增網格元件;將合併後的網格,給到自身網格
//到這裡,新模型的網格就已經生成了。執行模式下,可以點選物體的 MeshFilter 進行檢視網格
#region 以下是對新模型做的一些處理:新增材質,關閉所有子物體,新增自轉指令碼和控制相機的指令碼
//gameObject.AddComponent<MeshRenderer>().material = Resources.Load<Material>("Materials/Koala"); //給當前空物體新增渲染元件,給新模型網格上色;
//foreach (Transform t in transform) //禁用掉所有子物體
//{
// t.gameObject.SetActive(false);
//}
//gameObject.AddComponent<BallRotate>();
//Camera.main.gameObject.AddComponent<ChinarCamera>().pivot = transform;
#endregion
}
}
3
Error Effect —— 錯誤效果
執行後,你會發現場景中沒有什麼變化!還是那個模型在那裡!
其實這時候網格都已經生成了
原因-1:我們沒有禁用子物體,所以顯示的還是子物體的組合效果;
原因-2:我們只給空物體加了 MeshFilter 元件,並添加了合併後的網格,但並沒有進行渲染!
4
improvement —— 完善
Resources 中新建一個材質球命名:“ Koala ”,用來給空物體(新模型)渲染使用
並動態將子物體進行關閉,將對模型進行材質球的新增
動態新增2個指令碼,一個用來旋轉,一個控制相機旋轉(這是為了好看的測試效果,並非必要)
5
Project —— 專案檔案
專案檔案為 unitypackage 檔案包:
支援
May Be —— 搞開發,總有一天要做的事!
Chinar 提供一站式教程,閉眼式建立! 為新手節省寶貴時間,避免採坑! |
技術交流群:806091680 ! Chinar 歡迎你的加入
本部落格為非營利性個人原創,除部分有明確署名的作品外,所刊登的所有作品的著作權均為本人所擁有,本人保留所有法定權利。違者必究
對於需要複製、轉載、連結和傳播部落格文章或內容的,請及時和本博主進行聯絡,留言,Email: [email protected]
對於經本博主明確授權和許可使用文章及內容的,使用時請註明文章或內容出處並註明網址
相關推薦
Unity3d mesh合併,網格合併具體用法教程
Unity開發Mesh合併網格 本文提供全流程,中文翻譯。 Chinar 堅持將簡單的生活方式,帶給世人!(擁有更好的閱讀體驗 —— 高解析度使用者請根據需求調整網頁縮放比例)
Jqgrid合併單元格,左右合併,上下合併
先看樣例,下圖為普通html表格的合併單元格,程式碼在下面,把他儲存為html檔案開啟就行 縱向合併:rowspan:a合併a行並表示,需要把後面a-1的單元格隱藏display:none 橫向合併:colspan:a合併a行並表示 需要把後面a-1的單元格隱藏di
遍歷資料夾內所有的CSV檔案,並且合併為同一個CSV
import pandas as pd import os ### 讀取檔案中的資料內容。 os.listdir(u"F:/公司/03_Study/01_爬蟲") Folder_Path = u"F:/公司/03_Study/01_爬蟲" # 要拼接的資料夾及其完整路徑,注意不要包含中文
【CF778C】Peterson Polyglot(Trie樹,啟發式合併)
題意:有一棵n個結點的只由小寫字母組成的Trie樹,給定它的具體形態,問刪除哪一層後剩下Trie樹的結點數最少 n<=3e5 思路:先建出原Trie樹,對於每一層的每一個結點計算刪除後對答案的貢獻,這一部分使用啟發式合併 官方題解證明了時間複雜度是一個log的 http://codeforces
Tensorflow影象通道合併,IndexError: too many indices for array
在讀入多張影象並且在第3維上進行合併時(image[:, :, :]),出現IndexError: too many indices for array錯誤 data1 = imread('E:/dataset/Train_gray/2011_09_26_drive_0001_extrac
線上PDF合併,你應該注意的三點問題
工作中要把多個PDF檔案進行合併,很多人第一反應就是去網上搜索看看有沒有相應的軟體。其實有時候並不需要安裝軟體,現在很多網站可以進行線上PDF轉換。 那麼什麼樣的網站我們才能放心的使用呢? 1、操作簡單便利,不需進行安裝或設定,只要選擇檔案,就能合併頁面。 2、文件質量保證,合併後的
Git多分支合併,刪除分支後--保留分支資訊方法
Git merge 是合併分支的命令,預設會使用 Fast Forward 模式,這種模式在刪除分支後,分支的資訊也被刪除。 那麼如果要禁止使用該模式,在使用git merge 的時候,就要帶上-m " 保留分支資訊" ,這樣從git log 獲取的分支歷史上就能看出來。 具體使用:
mysql結構相同的資料表,資料合併到一個表
1、拼接生成批量插入語句 SELECT concat('insert into ordertarget(欄位名) select 欄位名 from ',table_name,';') FROM information_schema.TABLES WHERE table_name LIKE 'eco
演算法題006 -- [將兩個排序的連結串列合併,返回一個新連結串列,返回的新連結串列也是排好序的] by java
題目 將兩個排序的連結串列合併,返回一個新連結串列,返回的新連結串列也是排好序的 程式碼 package algorithm6; public class Algorithm6 { public static void main(String[] args) {
element-ui的表格行,列合併問題
1.在寫展示表格的時候,需要把5行合併為一列; 以下為element-ui 官網文件: <div> <el-table :data="tableData6" :span-method="arraySpanMethod" // 把列合
js獲取easyui資料,根據厚度,寬度,材質一致合併,長度相加顯示
<a href="javascript:printBill()" class="bt" style="margin-left:5px;text-decoration:none;color:#ffffff;float: right;
Frequent values POJ - 3368(線段樹,區間合併)
Frequent values POJ - 3368 題目連結 題意:一個非遞減序列,隨機詢問區間[l, r]中出現次數最多的數的出現次數; 思路:多次詢問,首先就要想一下線段樹;由題意可知數列中的數是連續的,既然是連續的就有合併的希望!!!那麼就來一發線段樹吧(RMQ也可以做
HTTP patch 方法實現,用於合併patch json與pojo物件
依賴: javax.json jackson-databind import com.fasterxml.jackson.databind.ObjectMapper; import javax.json.Json; import javax.json.JsonArray; import
git命令總結-提交push,分支合併pull,切換版本checkout
1. git提交命push git config --global user.name "git使用者名稱" git config --global user.email "git密碼" git add . git commit -m "提交內容介紹" git remo
[區間DP]石子合併極其變種問題(環形,40000堆型)P1880 [NOI1995]石子合併+[Sdoi2008]石子合併/poj1738An old Stone Game
有N堆石子,現要將石子有序的合併成一堆,規則如下: (1)每次只能移動任意相鄰的2堆石子合併,合併花費為新合成的一堆石子的數量。求將這N堆石子合併成一堆總花費,要求N<=300。 變形一:(2)每次只能移動相鄰的2堆石子合併,合併花費為新合成的一堆石子的數量。求將
leetcode617+兩個二叉樹合併,DP
struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x
學會這些“套路”,excel 合併彙總都不是事
1. 問題背景 在日常工作中我們經常遇到具有相同表頭的 Excel 檔案,需要將它們合併到同一個工作表中再進行分析。當檔案比較多時,手工合併表格通常是件很麻煩的事情,而如果資料量很大,用 Excel 自帶的 VBA 來處理也會經常卡死。今天我就來分享一個專業的外部資料
安卓studio打jar包,匯入第三方jar包,ant合併jar包
說明 此文件主要為了解決安卓打jar包問題,當我們使用了第三方jar包的時候,有時候需要將第三方jar包一塊打包到自己的jar包中,但是如果處理不好會出現“com.android.dx.cf.iface.ParseException: class name (…
Unity網格合併_材質合併
從優化角度,Mesh需要合併。 從換裝的角度(這裡指的是換形狀、換組成部件的換裝,而不是掛點型的換裝),都需要網格合併、材質合併。如果是人物的換裝,那麼需要合併SkinnedMeshRenderer,並重刷對應的骨骼列表。 示例: 1,新建兩個Cube,和一個Cylin
用Python開發PDF編輯器,實現PDF頁面提取,頁面合併與替換
大多數PDF軟體閱讀服務是免費的,但是如果你想編輯一個PDF文件,比如從一個PDF文件中提取指定頁面,合併多個PDF頁面或者實現PDF頁面的替換,你一般需要購買收費軟體才可以。這當然難不倒程式設計師們,尤其Python程式設計師們。今天小編我就帶你利用Django+PyPDF2開發一個比較實用的小A