unity中的物理引擎介紹_第1頁
unity中的物理引擎介紹_第2頁
unity中的物理引擎介紹_第3頁
unity中的物理引擎介紹_第4頁
unity中的物理引擎介紹_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

在此輸入文字標(biāo)題unity中的1物理引擎介紹

四個(gè)世紀(jì)前,物理學(xué)家牛頓發(fā)現(xiàn)了萬有引力,并延伸出三大牛頓定理,為之后的物理學(xué)界的發(fā)展奠定了強(qiáng)大的理論基礎(chǔ)。

日常工作生活中,我們寫文檔需要Word、Excel、Visio等辦公軟件,寫程序需要VisualStudio、Eclipse等各種集成開發(fā)環(huán)境、美術(shù)設(shè)計(jì)需要3dsMax、Maya、Photoshop等,正是因?yàn)橛辛诉@些強(qiáng)大的工具,我們的工作效率才會(huì)越來越高效。那么,在Unity3D的游戲開發(fā)中,是通過什么機(jī)制來實(shí)現(xiàn)物體的物理效果的呢?這里我們就用到了傳說中的物理引擎。物理引擎通過為剛性物體(游戲中的具體游戲?qū)ο?GameObject)賦予真實(shí)的物理屬性的方式來模仿真實(shí)世界中的物體碰撞、跌落等反應(yīng)。我們可以簡(jiǎn)單地理解為Unity3D默認(rèn)幫我們實(shí)現(xiàn)了一個(gè)讓游戲?qū)ο缶哂姓鎸?shí)物理對(duì)象的真實(shí)屬性。所以,簡(jiǎn)而言之,物理引擎就是在游戲中模擬真實(shí)的物理效果(物體碰撞、跌落等反應(yīng)的引擎)。什么是物理引擎?剛體當(dāng)一個(gè)游戲?qū)ο蟊毁x予RigidBody(剛體)組件之后,游戲引擎就會(huì)對(duì)其進(jìn)行物理效果模擬。同時(shí)我們也可以施加各種作用力給這個(gè)對(duì)象,讓它運(yùn)動(dòng)起來。。

首先在場(chǎng)景中創(chuàng)建一個(gè)cube,在cube中添加剛體組件。其設(shè)置如圖所示:剛體的使用及設(shè)置①M(fèi)ass:質(zhì)量—>質(zhì)量越大,慣性越大。這里的單位可以自己統(tǒng)一規(guī)定,但是官方給出的建議是場(chǎng)景中的物體質(zhì)量最好不要相差100倍率以上。估計(jì)是防止兩個(gè)質(zhì)量相差太大的物體碰撞后會(huì)產(chǎn)生過大的速度,從而影響游戲性能吧。②Drug:阻力(也可以表示為摩擦力)—>這里指的是空氣阻力,當(dāng)游戲物體收到某個(gè)作用力的時(shí)候,這個(gè)值越大越難移動(dòng)。如果設(shè)置成無限的話,物體會(huì)立即停止移動(dòng)。③AngularDrag:角阻力—>同樣指的是空氣阻力,只不過是用來阻礙物體旋轉(zhuǎn)的。如果設(shè)置成無限的話,物體會(huì)立即停止旋轉(zhuǎn)。④UseGravity:是否使用重力—>勾選了這個(gè)項(xiàng),游戲?qū)ο缶蜁?huì)受到重力影響。⑤IsKinematic:是否動(dòng)態(tài)—>勾選這個(gè)選項(xiàng)會(huì)使游戲?qū)ο蟛皇芪锢硪娴挠绊懀@不等同于沒有剛體組件。這通常用于需要用動(dòng)畫控制的剛體,這樣就不會(huì)因?yàn)閼T性而影響動(dòng)畫了。6、interpolate:差值,幀之間移動(dòng)更平滑7、collisionDetection:碰撞檢測(cè),三種:非連續(xù)、連續(xù)、連續(xù)動(dòng)態(tài)8、constants:勾選則表示某一個(gè)方向鎖死,如勾選X,表示X軸方向不動(dòng)剛體的使用及設(shè)置

力是物理學(xué)中一個(gè)非常重要的元素,其種類有很多,剛體組件可以受力的作用。比如給物體施加一個(gè)y軸方向的力,則該剛體綁定的物理沿y軸運(yùn)動(dòng)。

選中cube并給其添加一個(gè)恒定力,觀察效果。實(shí)施剛體力

在物理引擎中,剛體之間不是相互獨(dú)立,也需要交互,比如剛體之間可以發(fā)生碰撞。這時(shí),物理引擎中的碰撞器就可以確保剛體之間的碰撞發(fā)生。比如簡(jiǎn)單的一個(gè)立方體墜落會(huì)與地面之間發(fā)生碰撞從而停止運(yùn)動(dòng),這是因?yàn)樵趧?chuàng)建立方體物體時(shí)在里面默認(rèn)包含了一個(gè)boxcollider。當(dāng)我們?nèi)∠鸼oxcollider時(shí)物體則會(huì)穿過地面,不會(huì)發(fā)生碰撞。

首先我們了解一下碰撞器組件和剛體組件之間的關(guān)系:兩者結(jié)合可以使剛體之間發(fā)生正常的交互作用,比如碰撞。同時(shí)兩者又是相互獨(dú)立的。剛體組件是純物理引擎的,必須在物理引擎的控制之下,而碰撞器組件是可以獨(dú)立于物理引擎之外進(jìn)行工作的。比如第一人稱角色控制器物體使用的膠囊碰撞器,但其工作方式并非物理引擎。也就是說,碰撞器可以不用剛體,但剛體之間的交互必須用碰撞器。

碰撞器3、CapsuleCollider:膠囊碰撞器,第一人稱角色控制器使用2、SphereCollider:球體碰撞器1、Boxcollider:立方體碰撞器unity中存在的碰撞器類型以上三種碰撞器為幾何體類型的碰撞器,在unity中只有這三個(gè)。當(dāng)然除此之外還存在一個(gè)靜態(tài)碰撞器(MeshCollider),此類碰撞器用于位置不變的物體中,比如環(huán)境物體和地形物體。Convex:選中后,此MeshCollider碰撞器將會(huì)與其他的MeshCollider碰撞器進(jìn)行碰撞radius:半徑,用于設(shè)置半徑大小SmoothSpherecollisions:選中后碰撞變得平滑mesh:獲取游戲?qū)ο蟮木W(wǎng)格并將其作為碰撞器幾種碰撞器的屬性設(shè)置Material:可選擇一個(gè)物理材質(zhì)來定義碰撞器表面的物理特性,比如摩擦力等IsTrigger:選中后剛體之間進(jìn)行觸發(fā)器方式碰撞,并忽略物理引擎

剛體之間會(huì)發(fā)生碰撞,在碰撞的同時(shí)unity內(nèi)部會(huì)發(fā)生碰撞消息傳遞。對(duì)于剛體碰撞來說會(huì)傳遞三個(gè)碰撞消息。碰撞進(jìn)入時(shí)、碰撞退出時(shí)、碰撞持續(xù)時(shí)。

那么在剛體發(fā)生碰撞是到底是誰給誰傳遞了消息?傳遞了什么消息?

我們以立方體物體的碰撞為例進(jìn)行了解。剛體碰撞及碰撞消息傳遞

使用不同組件的物體之間的碰撞關(guān)系;比如有的物體只使用了碰撞器組件碰,有的物體同時(shí)使用了撞器組件和剛體組件,有的物體打開了碰撞器的觸發(fā)碰撞模式,這種不同類型的物體之間有的可能會(huì)發(fā)生碰撞,有的不會(huì)發(fā)生碰撞。這時(shí),我們就需要了解這些使用了不同組件的物體之間的碰撞關(guān)系。首先了解一下碰撞器的觸發(fā)碰撞模式(IsTrigger)。當(dāng)我們?cè)谂鲎财鹘M件中勾選了IsTrigger選項(xiàng)時(shí),物體墜落后則不會(huì)和地面發(fā)生碰撞,而是直接穿越地面。

剛體碰撞關(guān)系及觸發(fā)消息傳遞

在unity物理引擎中,剛體關(guān)節(jié)組件可以把兩個(gè)剛體連接起來,在某種時(shí)候是十分需要的,比如在創(chuàng)建一輛動(dòng)力學(xué)汽車時(shí)需要把車輪與汽車地盤連接起來,以此來實(shí)現(xiàn)整體移動(dòng)的目的。這個(gè)時(shí)候我們就用到了剛體關(guān)節(jié),在unity組件中我們可以添加鉸鏈關(guān)節(jié)、固定關(guān)節(jié)、彈簧關(guān)節(jié)、角色關(guān)節(jié)和可配置關(guān)節(jié)這幾種關(guān)節(jié)。本節(jié)我們只了解一下鉸鏈關(guān)節(jié)。鉸鏈關(guān)節(jié)Connectedbody關(guān)節(jié)所連接的剛體,當(dāng)選中其他剛體后,其他剛體將控制關(guān)節(jié),此剛體將連接在此處設(shè)置的剛體上Anchor設(shè)置關(guān)節(jié)在剛體中的位置Axis設(shè)置關(guān)節(jié)的方向MaxBounce達(dá)到最大旋轉(zhuǎn)角度時(shí)有多少反彈力BreakForce最大的力BreakTorque最大的扭轉(zhuǎn)力當(dāng)以上力達(dá)到最大時(shí),關(guān)節(jié)從剛體上斷開,當(dāng)使用無限大選項(xiàng)時(shí),關(guān)節(jié)則不會(huì)從剛體斷開Usespring使用彈簧。勾選該項(xiàng),則彈簧回使得剛體與其連接的主體形成一個(gè)特定的角度。Spring:彈簧。當(dāng)UseSpring參數(shù)開啟時(shí)屬性生效。剛體鉸鏈關(guān)節(jié)的使用Damper阻尼,該項(xiàng)用于設(shè)置對(duì)象的阻尼值,數(shù)值越大則對(duì)象移動(dòng)得越慢。TargetPosition目標(biāo)角度。該項(xiàng)用于設(shè)置彈簧的目標(biāo)角度,彈簧會(huì)拉向此角度UseMotor使用馬達(dá)。勾選此項(xiàng),馬達(dá)會(huì)使對(duì)象發(fā)生旋轉(zhuǎn)。Motor馬達(dá),當(dāng)UseMOtor參數(shù)去開啟的時(shí)候此屬性會(huì)被用到。

TargetVelocity:目標(biāo)速

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論