Character Controller(角色控制器)主要用於對第三人稱或第一人稱游戲主角的控制,並不適用剛體物理效果。
1、Character Controller組件屬性參數:
- Slope Limit:坡度限制。該參數用於設置自所控制的游戲對象只能爬上角度小於或等於該參數值的斜坡。
- Step Offset:台階高度。該參數用於設置所控制的游戲對象可以邁上的最高台階的高度。
- Skin Width:皮膚厚度。該參數決定了兩個碰撞體可以相互滲入的深度,較大的參數值會產生抖動的現象,較小的參數值會導致所控制的游戲對象被卡住,較為合理的設置是該參數值為Radius值的10%。
- Min Move Distance:最小移動距離。如果所控制的游戲對象的移動距離小於該值,則游戲對象將不會移動,這樣可避免抖動,大多數情況下該值設為0。
- Center:中心。該參數決定了膠囊碰撞體所控制的游戲對象的相對位置,並不影響所控制的游戲對象的中心坐標。
- Radius:半徑。該參數用於設置膠囊碰撞體的半徑。
- Height:高度。該參數用於設置膠囊碰撞體的高度。
2、Character Controller不會對施加給它的作用力做出反應,也不會作用於其他的剛體。如果想讓Character Controller組件能夠作用於其他的剛體對象,可以通過腳本[OnControllerColliderHit()函數]在與其相碰撞的對象上使用一個作用力。另外,如果想讓Character Controller受物理效果影響,那最好用剛體來代替它。
3、Charcter Controller的Skin Width是非常重要的屬性,因此必須正確地設置。如果角色卡住了,通常是由於Skin Width值設置的太小而導致的,該值可使其他的對象輕微地穿過Character Controller,並且可以避免抖動且防止角色卡住。
如果角色頻繁地被卡住,嘗試調整Skin Width的值。
通過編寫腳本,角色控制器可通過物理效果來影響其他的對象。
角色控制器無法通過物理效果被其他游戲對象所影響。
文章摘自《Unity官方案例精講》