Unity3D中Ragdoll的用法
一、創(chuàng)建Ragdoll
見unity3d組件文檔里的Ragdoll Wizard。由于unity3d中的Ragdoll設(shè)置的骨骼點(diǎn)名字與3DMAX里人體骨骼命名有些不一樣,下圖為Unity3D自帶的修理工模型導(dǎo)入unity3d后的Hierarchy圖,紅框內(nèi)的部分為Ragdoll需要的骨骼節(jié)點(diǎn)。
二、使用Ragdoll替換靜態(tài)角色
1、Destroy舊的角色
2、Instantiate設(shè)置好的Ragdoll
注意:Instantiate的時(shí)候,使用舊角色的position和rotation
三、使用Ragdoll替換帶動(dòng)畫的角色
//使用GetComponentsInChildren函數(shù)獲得所有剛體,將其Kinematic屬性去掉即可。(實(shí)踐證明,不論是不是運(yùn)動(dòng)學(xué)剛體,只要在有動(dòng)畫的情況下,一定不受物理影響)
對(duì)于沒(méi)有CharacterController的模型,在已經(jīng)添加Ragdoll的情況下,將角色的Animation組件去除,角色就會(huì)變?yōu)镽agdoll。在有動(dòng)畫播放的情況下,剛體是不起作用的,即使是非運(yùn)動(dòng)學(xué)剛體。
在實(shí)際操作的時(shí)候遇到了幾個(gè)問(wèn)題:
1、為何使用腳本修改Kinematic屬性沒(méi)有效果,而在編輯器里Is Kinematic那個(gè)鉤鉤確實(shí)鉤上了?
答:由于剛體處于休眠狀態(tài),需要用WakeUp函數(shù)喚醒才有用,估計(jì)是Unity3D在這方面有bug。
2、為何在使用CharacterController的時(shí)候,不論如何修改剛體的Kinematic屬性都會(huì)出現(xiàn)奇怪的動(dòng)作?
答:由于CharacterController會(huì)被Collider影響,所以需要將所有的Collider的enable屬性設(shè)為false才可以似的動(dòng)畫正常播放。(切記,CharacterController和Ragdoll的Collider不能同時(shí)出現(xiàn),否則CharacterController會(huì)受到影響)
3、如何恢復(fù)動(dòng)畫?
答:將Anmiaton組件的enable屬性設(shè)置為true即可。
總結(jié)
以上是生活随笔為你收集整理的Unity3D中Ragdoll的用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 晚秋的歌词(晚秋歌词表达什么意思)
- 下一篇: 投入产出比怎么算(直通车投产比多少才是盈