Unity3D中Ragdoll的用法

1、建立Ragdoll
     見unity3d組件文檔裏的 Ragdoll Wizard。因爲unity3d中的Ragdoll設置的骨骼點名字與3DMAX里人體骨骼命名有些不同,下圖爲Unity3D自帶的修理工模型導入unity3d後的Hierarchy圖,紅框內的部分爲Ragdoll須要的骨骼節點。
2、使用Ragdoll替換靜態角色
     一、Destroy舊的角色
     二、Instantiate設置好的Ragdoll
     注意:Instantiate的時候,使用舊角色的position和rotation
3、使用Ragdoll替換帶動畫的角色
     //使用GetComponentsInChildren函數得到全部剛體,將其Kinematic屬性去掉便可。 (實踐證實,不管是不是運動學剛體,只要在有動畫的狀況下,必定不受物理影響)
     對於沒有CharacterController的模型,在已經添加Ragdoll的狀況下,將角色的Animation組件去除,角色就會變爲Ragdoll。在有動畫播放的狀況下,剛體是不起做用的,即便是非運動學剛體。
     在實際操做的時候遇到了幾個問題:
一、爲什麼使用腳本修改Kinematic屬性沒有效果,而在編輯器裏Is Kinematic那個鉤鉤確實鉤上了?
     答:因爲剛體處於休眠狀態,須要用WakeUp函數喚醒纔有用,估計是Unity3D在這方面有bug。
二、爲什麼在使用CharacterController的時候,不論如何修改剛體的Kinematic屬性都會出現奇怪的動做?
     答:因爲CharacterController會被Collider影響,因此須要將全部的Collider的enable屬性設爲false才能夠似的動畫正常播放。(切記,CharacterController和Ragdoll的Collider不能同時出現,不然CharacterController會受到影響)
三、如何恢復動畫?
     答:將Anmiaton組件的enable屬性設置爲true便可。
相關文章
相關標籤/搜索