Unity基础——刚体
物理系統(tǒng)概述
剛體
①詳細(xì)信息
1.剛體【Rigidbody】是實(shí)現(xiàn)游戲?qū)ο蟮?strong>物理行為的主要組件,它讓游戲?qū)ο蟊晃锢硪嫠刂?#xff0c;能通過(guò)力和扭矩來(lái)表現(xiàn)真實(shí)的物理表現(xiàn)效果。
2.使用剛體后,對(duì)象將立即響應(yīng)重力。如果還添加了一個(gè)或多個(gè)碰撞體組件,則游戲?qū)ο髸?huì)因?yàn)榕鲎捕l(fā)生移動(dòng);
3.不應(yīng)試圖借助腳本通過(guò)改變變換屬性【比如位置、旋轉(zhuǎn)】來(lái)移動(dòng)游戲?qū)ο?#xff0c;應(yīng)該使用施加力的方式來(lái)推動(dòng)游戲?qū)ο蟛⒆屛锢硪嬗?jì)算結(jié)果。
但是在某些情況下,希望游戲?qū)ο缶哂袆傮w,并且讓剛體的運(yùn)動(dòng)擺脫物理引擎的控制。例如,希望直接從腳本代碼控制角色,但仍允許觸發(fā)器檢測(cè)角色,即接受Collision/Trigger消息。這種由腳本產(chǎn)生的非物理運(yùn)動(dòng)叫做【kinematic motion】;
剛體組件有一個(gè)Is Kinematic的屬性,勾選它就能通過(guò)腳本以運(yùn)動(dòng)學(xué)方式來(lái)控制對(duì)象的運(yùn)動(dòng);當(dāng)標(biāo)記為Is Kinematic時(shí),對(duì)象不會(huì)受到碰撞、力或物理系統(tǒng)任何其他部分的影響,即意味著必須通過(guò)直接操作變換組件來(lái)控制對(duì)象。
4.剛體和操作變換組件的最大區(qū)別就是在于力的運(yùn)用;
剛體可以接受力和扭矩,但是變換不能,對(duì)應(yīng)的變換組件可以平移和旋轉(zhuǎn);
向剛體施加力/扭矩實(shí)際上會(huì)改變對(duì)象的變換組件的位置和旋轉(zhuǎn),這就是應(yīng)該只使用其中一個(gè)組件的原因;如果直接操作了剛體的變換,在執(zhí)行碰撞和其他操作時(shí)會(huì)出問(wèn)題。
②父子化【Parenting】
當(dāng)一個(gè)對(duì)象處于物理引擎的控制下,對(duì)象的移動(dòng)方式在一定程度上獨(dú)立于其變換父對(duì)象的移動(dòng)方式。
如果移動(dòng)任何父物體,它們將會(huì)把剛體子物體對(duì)象拉到自己身邊。但是剛體仍然會(huì)因?yàn)橹亓Χ德?#xff0c;并且會(huì)對(duì)碰撞事件做出反應(yīng)。
③碰撞體
碰撞體是要與剛體一起使用才能實(shí)現(xiàn)碰撞的組件。
如果兩個(gè)剛體相互碰撞,且兩個(gè)對(duì)象都附加了碰撞體時(shí),物理引擎才會(huì)計(jì)算碰撞。
無(wú)碰撞體的剛體將直接相互穿過(guò)對(duì)方。
注意
網(wǎng)格碰撞體通常不能相互碰撞,若網(wǎng)格碰撞體被標(biāo)記為【Convex凸面體】,則可以與另一個(gè)網(wǎng)格碰撞體發(fā)生碰撞。典型的解決方案是對(duì)所有移動(dòng)對(duì)象使用原始碰撞體,而對(duì)靜態(tài)背景對(duì)象使用網(wǎng)格碰撞體。
④連續(xù)碰撞檢測(cè)
連續(xù)碰撞檢測(cè)是一種阻止快速移動(dòng)的碰撞體相互穿過(guò)的功能。
①使用Discreate碰撞檢測(cè)時(shí),如果對(duì)象在一幀中位于某個(gè)碰撞體的一側(cè),而在下一幀中已經(jīng)穿過(guò)了碰撞體,這屬于彼此穿過(guò)的情況。因此Discreate【離散檢測(cè)】不適用于高速運(yùn)動(dòng)的物體;
②解決此問(wèn)題,可在快速移動(dòng)對(duì)象的剛體上啟用連續(xù)碰撞檢測(cè),將碰撞檢測(cè)模式設(shè)置為Continuous可防止剛體穿過(guò)任何靜態(tài)(非剛體)網(wǎng)格碰撞體。
③Continuous Dynamic[動(dòng)態(tài)連續(xù)檢測(cè)]:防止對(duì)象穿過(guò)所有靜態(tài)碰撞體【非剛體】以及設(shè)置為Continuous或Continuous Dynamic的剛體
④Continuous Speculative【推測(cè)式】
⑤選擇合適的大小
Cube默認(rèn)大小恰好是1米,若對(duì)人類進(jìn)行建模,請(qǐng)確保該模型在unity中的高度約為2米,即立方體高度兩倍。
總結(jié)
以上是生活随笔為你收集整理的Unity基础——刚体的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Unity3D学习1--Unity基础
- 下一篇: Unity基础知识学习四,UI框架设计