日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

角色控制器

發(fā)布時(shí)間:2023/12/13 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 角色控制器 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、簡介
角色控制器(Character Controller)主要用于對(duì)第三人稱或第一人稱游戲主角的控制。

二、基本概念
第三人稱游戲中的這些控制器由于無規(guī)律可循,所以無法遵守固定的物理規(guī)則,例如,讓某輛車每小時(shí)跑 90 英里,但是它可能會(huì)突然停止然后在極小的空間中轉(zhuǎn)彎。此時(shí),就需要由角色控制器 (Character Controller) 進(jìn)行碰撞檢測(cè)以確保角色可以沿墻滑動(dòng)、走上和走下階梯等。

角色控制器 (Character Controller) 既可以受力的影響,也可以不受力的影響。比如,可以通過腳本對(duì)剛體 (Rigidbody) 應(yīng)用力來推動(dòng)它們。通常,所有類人角色都使用角色控制器 (Character Controller) 來實(shí)現(xiàn)。

角色控制器 (Character Controller) 本質(zhì)上是非物理性的,如果要將真實(shí)物理現(xiàn)象應(yīng)用于角色,比如在繩索上搖擺、由大巖石推動(dòng),則必須使用剛體 (Rigidbody),這樣才能對(duì)角色使用關(guān)節(jié) (Joint) 和力。

角色控制器 (Character Controller) 始終沿 Y 軸對(duì)齊,因此如果角色需要能夠在空間中改變方向(例如在變化的重力下),則也需要使用剛體 (Rigidbody)。但是要注意,很難將剛體 (Rigidbody) 調(diào)整為使角色感覺正常,因?yàn)橛螒蚪巧念A(yù)期行為方式是非物理性質(zhì)的。另一個(gè)差異在于,角色控制器 (Character Controller) 可以平穩(wěn)地滑過指定高度的臺(tái)階,而剛體 (Rigidbody) 則不能。

如果使剛體 (Rigidbody) 成為角色控制器 (Character Controller) 的父級(jí),則該角色就會(huì)獲得類似于“關(guān)節(jié)”(Joint) 的行為。

與角色控制器相關(guān)的概念有:

1、剛體(Rigidbody)。

2、碰撞體(Collider)。包括球體碰撞體(Sphere Collider)、箱體碰撞體(Box Collider)、網(wǎng)格碰撞體(Mesh Collider)、物理材質(zhì)(Physics Material)、鉸鏈關(guān)節(jié)(Hinge Joint)、彈簧關(guān)節(jié)(Spring Joint)等。

3、恒定力 (Constant Force)。

三、添加角色控制器的辦法
有兩種方式:

一種是添加Unity自帶的角色控制器,直接將其拖放到游戲?qū)ο笊霞纯伞?/p>

另一種是添加你自己定義的角色控制器,辦法為:選中要控制的角色對(duì)象–>【Component】–>【Physics】–>【Character Controller】,這樣即可為該對(duì)象添加自定義的角色控制器組件。

四、相關(guān)屬性
1、Slope Limit

坡度限制。該項(xiàng)用于設(shè)置所控制的角色對(duì)象只能爬上小于或等于該參數(shù)值的斜坡。

2、StepOoffset

臺(tái)階高度。該項(xiàng)用于設(shè)置所控制的角色對(duì)象可以邁上的最高臺(tái)階的高度。

3、Skin Width

皮膚厚度。該參數(shù)決定了兩個(gè)碰撞體可以相互滲入的深度,較大的參數(shù)值會(huì)產(chǎn)生抖動(dòng)的現(xiàn)象,較小的參數(shù)值會(huì)導(dǎo)致所控制的游戲?qū)ο蟊豢ㄗ?#xff0c;較為臺(tái)理的設(shè)定是:該參數(shù)值為Radius值的10%。

4、Min Move Distance

最小移動(dòng)距離。如果所控制的角色對(duì)象的移動(dòng)距離小于該值,則游戲?qū)ο髮⒉粫?huì)移動(dòng),這可以避免抖動(dòng),大多數(shù)情況下將該值設(shè)為0。

5、Center

中心。該參數(shù)決定了膠囊碰撞體在世界坐標(biāo)中的位置,并不影響所控制的角色對(duì)象的中心坐標(biāo)。

6、Radius

半徑。膠囊碰撞體的長度半徑,同時(shí)該項(xiàng)也決定了碰撞體的寬度。
7、Height

高度。該頂用于設(shè)置所控制的角色對(duì)象的膠囊碰撞體的高度,改變此值將會(huì)使碰撞體沿著Y軸的正負(fù)兩個(gè)方向同時(shí)伸縮。

五、注意事項(xiàng)
角色控制器不會(huì)對(duì)施加給它的作用力作出反應(yīng),也不會(huì)作用于真他的剛體。如果想讓角色控制器能夠作用于其他的剛體對(duì)象,可以通過腳本OnControllerColliderHit()函數(shù)在與其相碰撞的對(duì)象上使用—個(gè)作用力。另外,如果想讓角色控制器受物理效果影響,那就最好用剛體來代替它。

1、Height、Radius、Step Offset等參數(shù)

可以修改角色控制器的Height和Radius參數(shù)來適配角色模型的網(wǎng)格,對(duì)于人形的角色一般推薦為2m左右。如果控制器的中心點(diǎn)不在人物中心,可修改膠囊的Center參數(shù)對(duì)其中心點(diǎn)進(jìn)行調(diào)整,Step Offset參數(shù)也會(huì)對(duì)此產(chǎn)生影響,所以一般保證此值在0.1~04之間(以2m的人物角色為基準(zhǔn))。同時(shí)slope Limit參數(shù)值不要設(shè)定過小,通常設(shè)為90最好,此外,介于膠囊體形狀的緣故,人物角色是無法爬上墻的。

2、Skin Width的設(shè)定

角色控制器的【Skin Width】是非常重要的屬性,因此必須要正確地設(shè)定它。如果角色卡住了,通常是由于Skin Wdth值設(shè)得太小而導(dǎo)致的,該值可使其他的對(duì)象輕微地穿過角色控制器,并且可以避免抖動(dòng)且防止角色卡住。

【Skin Width】最好設(shè)置為大于0.01并且大于Radius×10%的值?!綧in Move Distance】的值推薦設(shè)為0。

3、技巧

如果角色頻繁地被卡住,嘗試調(diào)整【Skin Width】的值。

通過編寫腳本,角色控制器可通過物理效果來影響其他的對(duì)象。但是,角色控制器無法通過物理效果被其他游戲?qū)ο笏绊憽?/p>

OK,了解了角色控制器(特別是類人角色控制器)的這些基礎(chǔ)知識(shí),你就知道為什么要介紹本章后續(xù)節(jié)的內(nèi)容了

總結(jié)

以上是生活随笔為你收集整理的角色控制器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。