Unity3D—-匯入模型的碰撞檢測

來源:互聯網
上載者:User

   很多人在初學Unity3D的時候,可能會碰到這樣一個問題:匯入Unity3D的模型,給模型添加RigidBody後,模型會

一直往下落。


   那麼,我們如何解決這個問題呢?


   如果你嘗試過建立一個Cube之類的,添加RigidBody。運行程式後,你會很明顯的發現這個Cube可以掉落到地面。


   因而,想要我們的模型也這樣,可以將一個Cube與模型進行綁定,然後調整Cube的碰撞體積,並去掉Cube的渲

染。這樣我們就可以讓模型享有Cube的碰撞檢測,而又不會看到Cube。


  1.匯入資源:Assets--Import Package--Terrain Assets,匯入系統的地形貼圖等資源。

  2.添加模型:在Assets下建立一個Model檔案夾,將自己的3D模型放入Model中。


  

 

  3.建立地形:Terrain--Create Terrain。建立一個地形,在地形編輯部分點擊Paint the

 terrain texture表徵圖,選擇一個Texture,並調整Tile Size X, Tile Size Y。

  如所示:

  

  


  4.將模型拖到Unity3D情境編輯中,並調整位置。隨便添加個方向光,看起來會比較順眼。這個時候,如果你給模型

添加RigidBody,雖然它會有重力,但不會與Terrain進行碰撞。



  


  5.建立碰撞體:GameObject--Create Other--Cube。將Cube放到模型的中心位置(其他位置也可以),你可以看到Cube

有個Box Collider對象。調整Box Collider的Center和Size,也就是碰撞範圍(綠色的矩形),讓碰撞範圍符合整個模

型。建議分別通過X,Y,Z軸朝向進行調整。。




  

  6.在Hierarchy視圖上,將模型(我這裡是Tank)拖到Cube上。然後點Cube,Component--Physics--RigidBody給Cube

添加一個剛體。然後在Cube的屬性中,將Mesh Renderer勾去掉,也就是不進行渲染Cube。


  


  7.運行程式,你會發現模型安穩的落在了Terrain上了。

  


  雖然這個例子很簡單,但是大家也都基本瞭解了模型的碰撞思路(利用Cube,Sphere等GameObject來進行碰撞,效

率上比較高)。

  學習到這裡,稍微思考一下的童鞋應該會想到,如果是一個形狀怪異的模型怎麼辦?

  

  當然,你也可以將它作為Cube或Sphere等形狀進行碰撞,但可能精確程度會很差。就例如上面例子裡的坦克,最上

面的炮頭左邊是空的。

  這樣我們可以建立多個Cube進行組合,來增加碰撞的精確度。大家可以自己下去試

試。


  轉載請註明出處:http://blog.csdn.net/ml3947


  PS:讀大學的時候,寫過一段時間部落格,也與很多java學習者交流。但工總以後,很久沒有寫部落格了,只是突然發

現,每一個IT牛人,基本都會堅持寫部落格,與大家分享交流。工作一年了,我並不算是牛人,但也希望某一天成為一

個牛人。以後會堅持寫部落格,大家都加油!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.