Unity3D----導入模型的碰撞檢測


   很多人在初學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牛人,基本都會堅持寫博客,與大家分享交流。工作一年了,我並不算是牛人,但也希望某一天成為一

個牛人。以后會堅持寫博客,大家都加油!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM