- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
unity3d游戏开发之物理引擎
简介
? ?? ? 物理引擎就是在游戏中模拟真实的物理效果,比如,场景中有两个立方体对象,一个在空中,一个在地面上,在空中的立方体开始自由下落,然后与地面上的立方体对象发生碰撞,而物理引擎就是用来模拟真实碰撞的效果。
? ?? ? 如果需要让模型感应物理引擎的效果,需要将刚体组件或角色控制器组件添加至该对象中。
刚体(Rigidbody)
? ?? ? 刚体是一个非常重要的组件,新创建的物体默认情况下是不具有物理效果的,而刚体组件可以给物体添加一些常见的物理属性,比如物体质量、摩擦力和碰撞参数等,这些属性可用来真实的模拟该物体在3D游戏世界中的一切行为。
? ???下面我们在unity中创建一个plane(平面),两个cube(立方体),蓝色cube默认状态是没有rigidbody,给红色cube添加刚体组件,选择要添加刚体的对象,通过 “Component—hysics—Rigidbody”或者在Inspector窗口,选择“AddComponent—hysics—Rigidbody ”
运行后可以发现,添加了刚体的红色cube感应到了物理效应,会从空中落下。而蓝色cube依然是静止不动的
??可以看到Inspector可以看到Rigidbody包含的属性,简单的看下几个属性的含义,详细的可以看手册
力
? ?力是物理学中一个非常重要的元素,其种类有很多,刚体组件可以受力的作用,比如给刚体施加一个X轴方向的力,那么该刚体绑定的物体将沿X轴方向向前移动,这就好比用力将物体仍出去一样,该物体会以抛物线的形式移动,而不是呆板的做匀速平移 。
力的方式有两种
? ???1:普通力,通过设定里的方向和大小,相当于把力施加在物体的重心上。
? ???2:位置力,需要设定目标点的位置,该物体就朝向这个目标位置施加力。
AddForce和AddForceAtPosition
还是拿之前的那个列子做演示。在Hierarchy视图中创建两个Sphere,红色的添加普通力,白色的添加位置力
红色Cube当作位置力的目标对象。即向该位置发射一个位置力
1:创建脚本。定义三个变量:
? ??public?GameObject whiteSph;? //白色球体 施加普通力的对象? ??public?GameObject redSph;? //红色球体 施加目标位置力的对象? ??public?GameObject targetPos; //目标对象
2:GUI绘制两个Button,分别控制“普通力”和“位置力”逻辑代码
void?OnGUI()?? ?{?? ?? ?? ?if?(GUILayout.Button(普通力))???{? ?? ?? ?? ? redSph.rigidbody.AddForce(0,1000,0);? //Y轴上力的大小为1000。即向上?? ?? ??? } if?(GUILayout.Button(位置力))?{?? ?? ?? ?? //算出whiteSph到targetPos的目标向量? ?? ?? ?? ? Vector3 c = targetPos.transform.position - whiteSph.transform.position;? ?? ?? ?? ?? //在c位置施加一个位置力,targetPos将会向这个位置移动 whiteSph.rigidbody.AddForceAtPosition(c, targetPos.transform.position, ForceMode.Impulse);? ?? ?? ? }? ??}
3:脚本挂载到Camera上。给变量拖拽赋值。运行看效果.
??运行游戏,刚体会受物理效应会往下落
??1:当单击普通力。红色球体会往天空弹起,因为它有刚体。最终还是外往下落。
??2:当单击位置力。白色球体会朝着红色方块位置添加力。最终移动到这个位置。
??3:当改变红色cube坐标后。目标位置也跟着移动。
说了这么多。那AddForce和AddForceAtPosition到底有什么区别呢?我也是跟着学。跟着看手册,也许只有等以后知道了它运用在什么逻辑代码中。就自然而然了解了。
手册上的解释:
1: 添加一个力到刚体。作为结果刚体将开始移动。
2:在position位置应用force力。作为结果这个将在这个物体上应用一个力矩和力。
力矩?是什么。这个我也犯迷糊。不过在手册手看到这样一个函数。AddTorque:添加一个力矩到刚体。作为结果刚体将绕着torque轴旋转。
手册上函数有很多。有兴趣的可以自己去测试,等下把手册给大家。我也是网上下载的。
碰撞与休眠
?
您可能关注的文档
- 2008届高三生物纠错训练25.doc
- 2008年初中毕业试卷.doc
- 2008年度高职高专国家精品课程评审指标.doc
- 2008年浦东新区青少年活动中心教师申报中学高级教师职.doc
- 2008年湖南省中学生物学奥林匹克竞赛选拔赛试题.doc
- 2008年精品课程评审指标(高职高专).doc
- 2009年国家级实验教学示范中心申报指南.doc
- 2009年中学业水平测试模拟试卷.doc
- 2009年第一届全国软件专业人才设计与开发大赛试题C语言.doc
- 2009年西部计划派遣指标分配表.doc
- 2024年05月山东交通职业学院招考聘用博士研究生50人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月安徽芜湖市弋江区老年学校(大学)工作人员特设岗位公开招聘2人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东东营河口区教育类事业单位招考聘用22人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东交通职业学院招考聘用100人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东威海职业学院招考聘用高层次人才2人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月安徽石台县事业单位工作人员33人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东滨州市博兴县事业单位公开招聘考察笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月安徽蚌埠固镇县湖沟镇选聘村级后备干部7人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东省安丘市教育和体育局所属事业单位学校公开2024年招考232名工作人员笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东临沂临港经济开发区工作人员(5人)笔试历年典型题及考点剖析附带答案含详解.docx
文档评论(0)