1. 程式人生 > >Unity3D的Mesh與MeshFilter的使用

Unity3D的Mesh與MeshFilter的使用

如上圖,Robot手裡拿的槍的網格資料儲存在以gun_model命名的Mesh裡,而這個Mesh則隸屬於Gun_model的MeshFilter。知道了網格資料儲存的位置,接下來需要做的就是獲取這些資料並修改它們。下面使用一個簡單的cliff模型為例子介紹如何修改模型的網格資料。

Simple Example

    首先來看原始的模型長什麼樣?

image圖 3

    現在需要修改模型的網格資料,把模型最高點的高度座標挑高一倍,程式碼如下:

  1. using UnityEngine;  
  2. using System.Collections;  
  3. [RequireComponent(typeof
    (MeshFilter))]  
  4. publicclass example : MonoBehaviour {  
  5.     void Update() {  
  6.         Mesh mesh = GetComponent<MeshFilter>().mesh;  
  7.     Vector3 [] vertices = mesh.vertices;  
  8.     int p = 0;  
  9.     int flag = -1;  
  10.     float maxheight = 0.0F;  
  11.     while (p < vertices.Length) {  
  12.         if(vertices[p].z > maxheight) {  
  13.             maxheight = vertices[p].z;  
  14.             flag = p;      
  15.         }  
  16.         p++;  
  17.    }  
  18.     vertices[flag] += new Vector3(0, 0, maxheight);  
  19.     mesh.vertices = vertices;  
  20.     mesh.RecalculateNormals();  
  21.     }  
  22. }  

 注意:本例所使用的模型的local座標系的z軸相當於unity的y軸,因此上述程式碼時對z軸進行修改。程式碼執行的結果如下:

image圖 4

    是不是很簡單!unity強大的介面以及較為詳細的文件對開發者來說確實是一個福音,另外使用C#程式設計對於我這苦逼的不合格C++程式設計師來說確實很爽!

    另外有一點值得注意:上述程式碼所對應的指令碼一定要drag到GameObject裡MeshFilter的擁有者,才能使程式碼生效。如下圖5必須要把script拖拽到Cliffs01才能生效,因為在cliffs_1cm的GameObject裡只有Cliffs01擁有MeshFilter(如圖6)

image圖 5

image

圖 6

相關推薦

Unity3D的MeshMeshFilter的使用

如上圖,Robot手裡拿的槍的網格資料儲存在以gun_model命名的Mesh裡,而這個Mesh則隸屬於Gun_model的MeshFilter。知道了網格資料儲存的位置,接下來需要做的就是獲取這些資料並修改它們。下面使用一個簡單的cliff模型為例子介紹如何修改模型的網格資料。 Simple Ex

模塊

文件 clas cal 12px ... log 綁定 運行 查看 一:模塊 一個模塊就是一個包含了python定義和聲明的文件,文件名就是模塊名字加上.py的後綴。 模塊分類有:1:內建模塊,python‘自帶’的模塊,如os、sys 2

(最短路徑算法整理)dijkstra、floyd、bellman-ford、spfa算法模板的整理介紹

void empty borde fast 默認 grand else 理解 scan 這一篇博客以一些OJ上的題目為載體。整理一下最短路徑算法。會陸續的更新。。。 一、多源最短路算法——floyd算法 floyd算法主要用於求隨意兩點間的最短路徑。也成

6、自學——Linux的學習進度任務【FHS】

include 同名 med 可選 第三方 安裝 lin 三方 引導 FHS:文件層次標準 FHS:文件層次標準    / : 代表根目錄    /bin: 二進制文件,可執行程序,所有用戶都能用。   /sbin: 只有管理員執行的,二進制可執行程序。

Ubuntu 垃圾清理內核清理

linu ubun sta uname mage install sel 查看 all Ubuntu 垃圾清理可以依次采用如下命令 sudo apt-get clean sudo apt-get autoremove sudo apt-get autoclean Ubu

SOA基於CDIF的API的聯動

網絡協議 sca 流行 大發 一致性 ice 們的 硬件 形象 幾千年來,巴別塔的故事一直是人類面對的一個核心的困境。為了交流和溝通我們人類創造出語言,但溝通與交流仍然存在障礙……相同語言之間的溝通依語境的不同,尚且存在巨大的鴻溝,

文件

文件 close ges alt 處理 pan code res 高級 Stream是從起源(source)到接收(sink)的有序數據 按照流向分可以分為輸入流和輸出流 輸入流:只能從中讀取數據,不能寫入數據(基類是InputStream和Reader) 輸出流:

Nginx安裝使用

表示 cli 3.1 replace 需要 網站 pop emp 文字 Nginx安裝與使用 Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。由俄羅斯的程序設計師Igor Sysoev所

CSRF攻擊防禦(寫得非常好)

得到 cookie信息 req ret 沒有 不同的 sof 協議 表單 轉載地址:http://www.phpddt.com/reprint/csrf.html CSRF概念:CSRF跨站點請求偽造(Cross—Site Request Forger

3.1 Java以及Lucene的安裝配置

clas font style edi 面向對象 上進 net ref ips Lucene是Java開發的一套用於全文檢索和搜索的開源程序庫,它面向對象多層封裝,提供了一個低耦合、與平臺無關的、可進行二次開發的全文檢索引擎架構,是這幾年最受歡迎的信息檢索程序庫[1]。對L

sockethttp的區別

單獨 計算機 是否 tcp協議 操作 end 不定 請求 釋放 1、TCP連接 手機能夠使用聯網功能是因為手機底層實現了TCP/IP協議,可以使手機終端通過無線網絡建立TCP連接。TCP協議可以對上層網絡提供接口,使上層網絡數據的傳輸建立在“無差別”的網絡之上。 建立起

Linux - vim安裝 配置使用

格式 only ctx net height border term mona 方便 一 Vim 簡單介紹 曾經一直用vi,近期開始使用 vim,以下將兩者做一下比較。 vi和vim都是多模式編輯器,不同的是vim 是vi的升級版本號,它不僅兼容vi的全部指令,並且

創建對象使用對象——談談工廠的作用

方便 構圖 erb aof 常用 uda 行為 too jpg 工廠模式(包括簡單工廠模式、工廠方法模式和抽象工廠模式)到底有什麽用,很多時候通過反射機制就可以很靈活地創建對象,為毛還要工廠?,在本文中我將圍繞創建對象和使用對象來簡單談談工廠的作用。 與一個對象

EFcore動態模型

partial 轉換 asp creating ace 模型 rac propertya builder   在開發商城系統的時候,大家會遇到這樣的需求,商城系統裏支持多種商品類型,比如衣服,手機,首飾等,每一種產品類型都有自己獨有的參數信息,比如衣服有顏色,首飾有材質等,

Linux下svn的安裝部署

myeclipse span .com 服務 點擊 svn服務器 。。 hook idt     最近工作碰到一個問題,我和一個同夥負責開發一個管理系統,基於原來的代碼上進行修改,每當他修改之後,我要再修改都要和他確定是不是最新的文件,才能進行修改。非常影響工作的效率,所以

[Linux] Linux 中的基本命令目錄結構(初稿)

展開 src 文件名 auto 使用 bin target editor 提示符 Linux 中的基本命令與目錄結構 目錄 一、Linux 基本目錄結構 二、基本命令 三、瀏覽目錄 四、中間命令 五、更改密碼 六、環境變量和 shell 變量 七、命令路

[Linux] Linux 中的基本命令目錄結構(待移除)

head 命令 存在 壓縮 下載 創建文件 name 批處理 targe 簡化 Linux 中的基本命令與目錄結構 目錄 一、Linux 基本目錄結構 二、基本命令 三、瀏覽目錄 四、中間命令 五、更改密碼 六、環境變量和 shell 變量 七、命令路徑

數據更新、視圖的創建改動

none 記錄 text 分析器 計算機 ext 使用 margin border 一、實驗目的 1、學會使用INSERT、UPDATE、DELETE等SQL語句進行數據更新; 2、學會使用CREATE、DROP等SQL語句創建和刪除視圖。 二、實驗內容 1、在

【Java並發編程】:守護線程線程阻塞的四種情況

情況 字節 lin eight 業務 普通 sta dsta state 守護線程 JAVA中有兩類線程:User Thread(用戶線程)、Daemon Thread(守護線程) 用戶線程即運行在前臺的線程,而守護線程是運行在後臺的線程。 守護線程作用是

Python篇1.15---模塊

def lob 是否 函數 16px ont 針對 自己的 bsp 一.模塊 1 什麽是模塊? 一個模塊就是一個包含了python定義和聲明的文件,文件名就是模塊名字加上.py的後綴。 2 為何要使用模塊? 如果你退出python解釋器然後重新進入,那麽你之