Unity 3D 剛體實(shí)踐案例

2022-04-06 14:07 更新

剛體使物體符合現(xiàn)實(shí)中物理學(xué)定律進(jìn)行運(yùn)動(dòng),任何物體想要受重力影響,都必須包含一個(gè)剛體組件。

利用剛體類(lèi)游戲組件,遵循萬(wàn)有引力定律,在重力作用下,物體會(huì)自由落下。

剛體組件還會(huì)影響到物體發(fā)生碰撞時(shí)產(chǎn)生的效果,使物體的運(yùn)動(dòng)遵循慣性定律,使其發(fā)生碰撞時(shí)在運(yùn)動(dòng)沖量作用下產(chǎn)生速度。

本案例旨在利用剛體測(cè)試重力效果以及碰撞后的交互效果。

案例設(shè)計(jì)

本案例在 Unity 3D 內(nèi)創(chuàng)建一個(gè)簡(jiǎn)單的三維場(chǎng)景,場(chǎng)景內(nèi)放有 CubePlane,Plane 用于充當(dāng)?shù)孛妫?code>Cube 用于剛體重力測(cè)試。

案例實(shí)施

  1. 新建項(xiàng)目,將場(chǎng)景命名為 Rigidbody。

  1. 創(chuàng)建游戲?qū)ο蟆?/li>

執(zhí)行 GameObject3D ObjectPlane 命令,此時(shí)在 Scene 視圖中出現(xiàn)了一個(gè)平面,在右側(cè)的 Inspector 面板中設(shè)置平面位置(0,0,-5)。

  1. 創(chuàng)建游戲?qū)ο蟆?/li>

在菜單欄中執(zhí)行 GameObject3D ObjectCube 命令,在右側(cè)的 Inspector 面板中設(shè)置立方體的位置(0,5,0),按 F2 鍵可將其重新命名。

  1. 美化場(chǎng)景。

采用紋理貼圖的方法將地面和立方體都貼上紋理。

首先,將資源圖片放置在項(xiàng)目的根目錄 Assets 下,Unity 3D 會(huì)自動(dòng)加載資源。

然后分別選中立方體和平面,將對(duì)應(yīng)的資源圖片分別拖到立方體和平面上即可。

  1. 為立方體添加剛體屬性。

選中立方體,然后執(zhí)行菜單欄中的 ComponentPhysicsRigidbody 命令,當(dāng)右側(cè)的 Inspector 面板中出現(xiàn)了 Rigidbody 屬性面板時(shí),即為立方體添加了剛體屬性。

  1. 進(jìn)行初步測(cè)試。

置于半空中的立方體由于受到重力作用做自由落體運(yùn)動(dòng),掉落到平面上。

  1. 復(fù)制游戲?qū)ο蟆?/li>

在 Hierarchy 視圖中,選中 Cube1 后按 Ctrl+D 鍵復(fù)制立方體 Cube2 并將其擺放于場(chǎng)景中,在 Inspector 面板中設(shè)置新復(fù)制的立方體的位置屬性(0.4,0.5,0),按此方法再?gòu)?fù)制一個(gè)立方體 Cube3 斜放于 Cube2 上,設(shè)置 Cube3 的位置為(0,1.5,0)。

  1. 執(zhí)行菜單欄的 ComponentPhysicsRigidbody 命令為每一個(gè)立方體添加剛體屬性。

  1. 再次測(cè)試。

最上方立方體進(jìn)行自由落體運(yùn)動(dòng),撞擊到地面,盒子發(fā)生倒塌。

  1. 創(chuàng)建 JavaScript 腳本文件,輸入下列代碼:

    var speed=10;
    function OnMouseDrag(){
        transform.position+=Vector3.right*Time.deltaTime*Input.GetAxis("MouseX")*speed;
        transform.position+=Vector3.up*Time.deltaTime*Input.GetAxis("Mouse Y")*speed;
    }

  1. 將腳本分別連接到 3 個(gè)立方體上。

  1. 進(jìn)行最終測(cè)試。

本案例世間目標(biāo)達(dá)成。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)