阅读(3510)
赞(0)
Unity 3D 力(AddForce)
2020-07-15 10:43:58 更新
力是在物体之间的相互作用过程中表现出来的,在物理学中力是非常重要的元素。
力的种类有很多,刚体组件因为受到力的作用而进行加速或抛物线运动。
Unity 3D 中通过 rigidbody.AddForce(x,y,z)方法
添加力的作用,该方法的参数:
- 施加力的方向。
- 参数大小代表了力的大小。
实践案例
游戏中物体受力是对现实现象的模拟。
本案例通过对小球施加力的作用产生与发生盒子碰撞的效果:
在 Unity 3D 内创建一个简单的 3D 场景,场景内放有 1 个 Sphere
,1 个 Plane
和 3 个 Cube
。
Plane
用于充当地面,Sphere
和 Cube
用于做力的测试。
在初始场景中 Cube
处于静止状态,通过 Sphere
瞬间施加一个力,使 Cube
运动。
实施步骤
- 创建游戏对象。
执行 GameObject
→ 3D Object
→ Plane
命令,此时在 Scene 视图中出现了一个平面,在右侧的 Inspector 面板中设置平面位置(0,0,-5)。
执行菜单栏中的 GameObject
→ 3D Object
→ Cube
命令,创建 3 个立方体盒子,在右侧的 Inspector 面板中分别设置 3 个立方体盒子的位置(0,0.5,-5),(0.5,1.5,-5)(0.5,2.5,-5)。
执行菜单栏中的 GameObject
→ 3D Object
→ Sphere
命令,在 Inspector 面板中设置球体位置属性(-1,0.5,-7)。
- 美化场景。
为球体、立方体及地面贴材质。
- 选中球体,执行菜单栏中的
Component
→Physics
→Rigidbody
命令。
为球体和立方体添加刚体属性。
- 创建 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);
}
- 保存脚本并将其链接到球体上,进行测试。
小球会受到力的作用向前运动,并与立方体发生碰撞。