unity3d学习之unity物理引擎.doc

unity3d学习之unity物理引擎.doc

ID:57695889

大小:925.05 KB

页数:12页

时间:2020-09-01

unity3d学习之unity物理引擎.doc_第1页
unity3d学习之unity物理引擎.doc_第2页
unity3d学习之unity物理引擎.doc_第3页
unity3d学习之unity物理引擎.doc_第4页
unity3d学习之unity物理引擎.doc_第5页
资源描述:

《unity3d学习之unity物理引擎.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、简介 物理引擎就是在游戏中模拟真实的物理效果,比如,场景中有两个立方体对象,一个在空中,一个在地面上,在空中的立方体开始自由下落,然后与地面上的立方体对象发生碰撞,而物理引擎就是用来模拟真实碰撞的效果。 如果需要让模型感应物理引擎的效果,需要将刚体组件或角色控制器组件添加至该对象中。刚体(Rigidbody) 刚体是一个非常重要的组件,新创建的物体默认情况下是不具有物理效果的,而刚体组件可以给物体添加一些常见的物理属性,比如物体质量、摩擦力和碰撞参数等,这些属性可用来真实的模拟该物体在3D游戏世界中的一切行为。 下面我们在unity中创建一个plane(平面),两

2、个cube(立方体),  蓝色cube默认状态是没有rigidbody,  给红色cube添加刚体组件,选择要添加刚体的对象,通过“Component—>Physics—>Rigidbody”或者在Inspector窗口,选择“AddComponent—>Physics—>Rigidbody”   运行后可以发现,添加了刚体的红色cube感应到了物理效应,会从空中落下。而蓝色cube依然是静止不动的   可以看到Inspector可以看到Rigidbody包含的属性,简单的看下几个属性的含义,详细的可以看手册   力 力是物理学中一个非常重要的元素,其种类有很多,

3、刚体组件可以受力的作用,比如给刚体施加一个X轴方向的力,那么该刚体绑定的物体将沿X轴方向向前移动,这就好比用力将物体仍出去一样,该物体会以抛物线的形式移动,而不是呆板的做匀速平移。 力的方式有两种   1:普通力,通过设定里的方向和大小,相当于把力施加在物体的重心上。   2:位置力,需要设定目标点的位置,该物体就朝向这个目标位置施加力。AddForce和AddForceAtPosition还是拿之前的那个列子做演示。在Hierarchy视图中创建两个Sphere,红色的添加普通力,白色的添加位置力红色Cube当作位置力的目标对象。即向该位置发射一个位置力 1:创

4、建脚本。定义三个变量:1publicGameObjectwhiteSph;//白色球体施加普通力的对象2publicGameObjectredSph;//红色球体施加目标位置力的对象3publicGameObjecttargetPos;//目标对象  2:GUI绘制两个Button,分别控制“普通力”和“位置力”逻辑代码1voidOnGUI()2{3if(GUILayout.Button("普通力"))4{5redSph.rigidbody.AddForce(0,1000,0);//Y轴上力的大小为1000。即向上6}7if(GUILayout.Button("位

5、置力"))8{9//算出whiteSph到targetPos的目标向量10Vector3c=targetPos.transform.position-whiteSph.transform.position;1112//在c位置施加一个位置力,targetPos将会向这个位置移动13whiteSph.rigidbody.AddForceAtPosition(c,targetPos.transform.position,ForceMode.Impulse);14}15} 3:脚本挂载到Camera上。给变量拖拽赋值。运行看效果.  运行游戏,刚体会受物理效应会往下落 

6、1:当单击普通力。红色球体会往天空弹起,因为它有刚体。最终还是外往下落。 2:当单击位置力。白色球体会朝着红色方块位置添加力。最终移动到这个位置。 3:当改变红色cube坐标后。目标位置也跟着移动。说了这么多。那AddForce和AddForceAtPosition到底有什么区别呢?我也是跟着学。跟着看手册,也许只有等以后知道了它运用在什么逻辑代码中。就自然而然了解了。手册上的解释:1: 添加一个力到刚体。作为结果刚体将开始移动。2:在position位置应用force力。作为结果这个将在这个物体上应用一个力矩和力。力矩?是什么。这个我也犯迷糊。不过在手册手看到这

7、样一个函数AddTorque:添加一个力矩到刚体。作为结果刚体将绕着torque轴旋转。手册上函数有很多。有兴趣的可以自己去测试,等下把手册给大家。我也是网上下载的。 碰撞与休眠  刚体与物体之间是存在碰撞的,一旦刚体开始移动,就可以在系统方法中监听刚体的碰撞状态,碰撞分为三种:  1:进入碰撞  2:碰撞中  3:碰撞结束我们通过一张图片来了解   碰撞器 游戏对象如果需要感应碰撞,那么必须给其添加碰撞器,默认情况下,创建游戏对象时,会自动将碰撞器添加到其中。 unity一共为对象提供了6种碰撞器 1:BoxCollider    盒子碰撞器 2:SphereC

8、ollid

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。