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