Unity 3D 力(AddForce)

2020-07-15 10:57 更新

力是在物體之間的相互作用過程中表現(xiàn)出來的,在物理學(xué)中力是非常重要的元素。

力的種類有很多,剛體組件因為受到力的作用而進(jìn)行加速或拋物線運(yùn)動。

Unity 3D 中通過 rigidbody.AddForce(x,y,z)方法添加力的作用,該方法的參數(shù):

  • 施加力的方向。

  • 參數(shù)大小代表了力的大小。

實踐案例

游戲中物體受力是對現(xiàn)實現(xiàn)象的模擬。

本案例通過對小球施加力的作用產(chǎn)生與發(fā)生盒子碰撞的效果:

在 Unity 3D 內(nèi)創(chuàng)建一個簡單的 3D 場景,場景內(nèi)放有 1 個 Sphere,1 個 Plane 和 3 個 Cube。

Plane 用于充當(dāng)?shù)孛妫?code>Sphere 和 Cube 用于做力的測試。

在初始場景中 Cube 處于靜止?fàn)顟B(tài),通過 Sphere 瞬間施加一個力,使 Cube 運(yùn)動。

實施步驟

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

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

執(zhí)行菜單欄中的 GameObject3D ObjectCube 命令,創(chuàng)建 3 個立方體盒子,在右側(cè)的 Inspector 面板中分別設(shè)置 3 個立方體盒子的位置(0,0.5,-5),(0.5,1.5,-5)(0.5,2.5,-5)。

執(zhí)行菜單欄中的 GameObject3D ObjectSphere 命令,在 Inspector 面板中設(shè)置球體位置屬性(-1,0.5,-7)。

  1. 美化場景。

為球體、立方體及地面貼材質(zhì)。

  1. 選中球體,執(zhí)行菜單欄中的 ComponentPhysicsRigidbody 命令。

為球體和立方體添加剛體屬性。

  1. 創(chuàng)建 JavaScript 腳本,雙擊將其打開,輸入下列代碼。

    var addForceObj:GameObject;
    function Start(){
        addForceObj=GameObject.Find("Sphere");
    }
    function OnGUI(){
        if(GUILayout.Button("force", GUILayout.Height(50))) addForceObj.rigidbody.AddForce(500, 0, 1000);
    }

  1. 保存腳本并將其鏈接到球體上,進(jìn)行測試。

小球會受到力的作用向前運(yùn)動,并與立方體發(fā)生碰撞。

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號