codecamp

Unity 3D 力(AddForce)

力是在物体之间的相互作用过程中表现出来的,在物理学中力是非常重要的元素。

力的种类有很多,刚体组件因为受到力的作用而进行加速或抛物线运动。

Unity 3D 中通过 rigidbody.AddForce(x,y,z)方法添加力的作用,该方法的参数:

  • 施加力的方向。

  • 参数大小代表了力的大小。

实践案例

游戏中物体受力是对现实现象的模拟。

本案例通过对小球施加力的作用产生与发生盒子碰撞的效果:

在 Unity 3D 内创建一个简单的 3D 场景,场景内放有 1 个 Sphere,1 个 Plane 和 3 个 Cube

Plane 用于充当地面,SphereCube 用于做力的测试。

在初始场景中 Cube 处于静止状态,通过 Sphere 瞬间施加一个力,使 Cube 运动。

实施步骤

  1. 创建游戏对象。

执行 GameObject3D ObjectPlane 命令,此时在 Scene 视图中出现了一个平面,在右侧的 Inspector 面板中设置平面位置(0,0,-5)。

执行菜单栏中的 GameObject3D ObjectCube 命令,创建 3 个立方体盒子,在右侧的 Inspector 面板中分别设置 3 个立方体盒子的位置(0,0.5,-5),(0.5,1.5,-5)(0.5,2.5,-5)。

执行菜单栏中的 GameObject3D ObjectSphere 命令,在 Inspector 面板中设置球体位置属性(-1,0.5,-7)。

  1. 美化场景。

为球体、立方体及地面贴材质。

  1. 选中球体,执行菜单栏中的 ComponentPhysicsRigidbody 命令。

为球体和立方体添加刚体属性。

  1. 创建 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. 保存脚本并将其链接到球体上,进行测试。

小球会受到力的作用向前运动,并与立方体发生碰撞。

Unity 3D 物理材质实践案例
Unity 3D角色控制器
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }