C語言中文網 目錄

Unity 3D力(AddForce)

力一般是在物體之間的作用過程中表現出來的,在物理學中力是非常重要的元素。

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

Unity 3D 中通過 rigidbody.AddForce(x,y,z)方法添加力的作用,該方法的參數是施加力的方向,參數大小代表了力的大小。

實踐案例:力的添加

案例構思

現實世界中的物體都受到力的作用,所以才會有千變萬化的物理現象。

游戲中物體受力時只是現象的模擬,而不是真的受到力的作用,也就是感覺好像真的受到了力的作用,而實際上只不過是執行力的函數而已。

本案例旨在通過對小球施加力的作用產生與盒子碰撞的效果。

案例設計

本案例在 Unity 3D 內創建一個簡單的 3D 場景,場景內放有 1 個 Sphere,1 個 Plane 和 3 個 Cube,Plane 用于充當地面,Sphere 和 Cube 用于做力的測試。

初始場景中 Cube 處于靜止狀態,通過 Sphere 瞬間施加一個力,使 Cube 運動。

案例實施

步驟 1):創建游戲對象。執行 GameObject→3D Object→Plane 命令,此時在 Scene 視圖中出現了一個平面,在右側的 Inspector 面板中設置平面位置(0,0,-5)。

步驟 2):創建游戲對象。執行菜單欄中的 GameObject→3D Object→Cube 命令,創建 3 個立方體盒子,在右側的 Inspector 面板中分別設置 3 個立方體盒子的位置(0,0.5,-5),(0.5,1.5,-5)(0.5,2.5,-5),如下圖所示。

cube擺放效果

步驟 3):創建游戲對象。執行菜單欄中的 GameObject→3D Object→Sphere 命令,在 Inspector 面板中設置球體位置屬性(-1,0.5,-7),如下圖所示。

Sphere擺放效果

步驟 4):美化場景。為球體、立方體及地面貼材質,如下圖所示。

材質貼圖效果

步驟 5):選中球體,執行菜單欄中的 Component→Physics→Rigidbody 命令,為球體和立方體添加剛體屬性。

步驟 6):創建 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);
}
步驟 7):保存腳本并將其鏈接到球體上。

步驟 8):單擊 Play 按鈕進行測試,當點擊 force 按鈕時,小球會受到力的作用向前運動,并與立方體發生碰撞,效果如下圖所示。

測試效果

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo