Unity3D脚印7——物理
admin
2023-01-21 04:00:48
0

Unity3D使用的是Physx物理引擎,但这里的用法跟纯粹的Physx不一样,这里是由刚体和碰撞体两种组件组成的物理对象。

 

【刚体】

 

    RigidBody 用于物理模拟,有质量,受重力影响,可以和其他可碰撞对象在碰撞的过程中发生相互作用的力,不要在运动中直接操作它们的位置(你要知道这不合物理),要通过施加力的方式来操作它,或者使用Joint

 

刚体的脚本API:http://game.ceeger.com/Script/Rigidbody/Rigidbody.html

 

Tips:

两个刚体的相对质量Mass决定它们之间碰撞之后的表现

阻力Drag越大,物体看起来越轻

 

【碰撞器】

 

    Collider 用于碰撞检测,包含物理材质,刚体的碰撞检测是基于碰撞器的,一个对象必须有碰撞器,它的刚体才有效果,而一个没有刚体的碰撞器,就是物理世界中的一个静态对象,例如地板和楼房这些不会运动的物体,但能作用于其他刚体,逐帧移动一个静态碰撞器将重置Physt引擎,极耗资源

 

碰撞器的脚本API:http://game.ceeger.com/Script/Collider/Collider.html

 

【运动学刚体】

 

    Kinematic Rigidbodies isKinematic属性为true的物体,不受力,重力,扭力的影响,但可以影响其他非运动学刚体,也可以直接设置它的位置,无敌模式,只有我可以打别人,别人不可以打我

 

【角色控制器】

 

    Character Controllers 一个垂直胶囊形状的碰撞体,用于模拟类似人的控制器,它不受力的影响,但可以被代码施加的力推动,通常,所有类似人的角色都用角色控制器来执行,角色控制器本身不具备物理特性,如果要应用真正的物理特性,必须使用刚体。

 

角色控制器API: http://game.ceeger.com/Script/CharacterController/CharacterController.html

 

 

【关于碰撞和触发的回调函数】

 

OnTriggerXXX和OnCollisionXXX回调,这系列的回调函数都是在发生碰撞的时候回调的,都包含了Enter,Exit和Stay三种状态,但触发的规则以及传入的参数不一样

 

OnTrigger系列是当碰撞体Collider和Trigger(自身的碰撞体)发生作用时调用的,当碰撞体的isTrigger属性为true时才会发送,但当它为true时,原先的碰撞属性消失。这系列回调是由Collider发出的,碰撞对象将作为Collider被传入(可以通过collider.gameObject来操作这个gameObject,它继承于Component,Component包含了非常多的组件对象

 

OnCollision系列是当刚体直接发生碰撞的时候回调的,是由刚体发出的,它传入的对象是Collision,它包含更加详细的信息,接触点,碰撞速度等等,OnCollision要求两个对象都是刚体+碰撞体,传入参数是可选的,非动力学刚体发生的碰撞仅发送碰撞事件,而不发送Collision

 

【菜鸟使用物理引擎】

 

1.创建一个游戏对象

2.添加刚体

3.添加物理材质(需导入Asset,导入方法如下所示)


Unity3D脚印7——物理 

脚本调用物理引擎

 

要使对象受物理引擎控制,简单的办法就是给它加个 Rigidbody 。当你这么干了,对象就会受到重力影响,而且会和世界中的其他对象碰撞

刚体是模拟物理效果的对象。刚体用在玩家可以四处推动的东西,比如箱子或者没有固定的对象,或者,你可以直接用脚本添加力给对象来让他四处移动。

 

如果你直接移动一个非运动学刚体的Transform,它和其他对象的碰撞可能出问题。正确地方法应该是通过施加力或者扭矩来移动刚体。也可以添加Joints 来让刚体的行为更加复杂。比如,你可以制作一扇逼真的门或者是一台有摆动链条的吊机。

 

刚体通常和原型碰撞器配合使用。

 

Tips: 提示

  • You should never have a parent and child rigidbody together 
    绝不要把父子刚体放在一起。(无法单独控制)

  • You should never scale the parent of a rigidbody 
    绝不要缩放刚体的父对象。 

 

 

 

运动学刚体指的是激活了isKinematic属性的刚体。运动学刚体不受力、重力或扭矩的影响。可以通过设置Transform 的position和rotation来准确的操作它们或者让它们动起来,但是,它们可以和其他的非运动学刚体互相作用。


相关内容

热门资讯

今年上半年全国城镇新增就业69... 今天(22日)上午,人力资源社会保障部举行新闻发布会。今年上半年,全国城镇新增就业695万人,同比持...
委内瑞拉强震遇难人数升至534... 当地时间21日,委内瑞拉全国代表大会主席豪尔赫·罗德里格斯通过社交媒体通报,该国6月24日两次强震造...
高考684分花3000元咨询进... 潮新闻客户端 青年特约评论员 曾耀湘图源:视觉中国近日,据齐鲁晚报报道,河北一名2018级考生,因“...
郑州2死2伤火灾系人为纵火 郑州市公安局金水分局对外发布案件通报。通报显示,6月19日21时,郑州市金水区宏明路与柳林路东南角宏...
29岁成都小伙旅行中改道广西救... 7月14日,自发赶往广西救灾的志愿者党鑫蕊,由于劳累过度导致心功能衰竭,在贵港市覃塘区不幸离世,年仅...
清理洗衣机下水管道的方法 清理洗衣机下水管道是一项必要的任务,如果不及时清理,管道内部容易积累污垢和细菌,从而影响洗衣机的使用...
澳外长宣称:中国要就军事建设做... 7月初,中国向太平洋公海海域成功发射一枚携载训练模拟弹头的潜射战略导弹。中方重申,此为例行军事训练活...
伊朗威胁打击海水淡化厂,到底有... 据路透社报道,伊朗7月21日对科威特一座海水淡化厂发动袭击,引发海湾地区担忧,随着该地区冲突升级,更...
美新版“空军一号”刚上岗就回炉... 【环球时报综合报道】美国《防务新闻》7月20日称,美国总统特朗普透露,新版总统专机“空军一号”将被送...
全自动卧式洗衣机清理方法 随着生活水平的不断提高,全自动卧式洗衣机已经成为了家庭生活中不可或缺的一部分。它的出现方便了我们日常...