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来准确的操作它们或者让它们动起来,但是,它们可以和其他的非运动学刚体互相作用。


相关内容

热门资讯

德国总理:美国正在被伊朗羞辱 德国之声4月27日报道,德国总理默茨在访问一所学校时表示,在当前的持续冲突中,伊朗领导层正试图羞辱美...
理响中国|“长”歌以行,风云激... 光阴如梭,东方潮阔。这里是中国的长三角,世界的长三角。无论过去、现在还是未来,这片土地都因时代而生,...
白宫:特朗普及其国安团队开会讨... 新华社华盛顿4月27日电 美国白宫新闻秘书莱维特27日在记者会上证实,总统特朗普及其国家安全团队当天...
人民日报刊文:日本放开杀伤性武... 日本放开杀伤性武器出口推高地缘冲突风险(国际论坛)常思纯《人民日报》(2026年04月28日 第 0...
医疗保障法草案二审:明确生育保... 满足多样化健康保障需求本报记者 彭 波4月27日,医疗保障法草案二审稿提请十四届全国人大常委会第二十...
天津一景区发生自转旋翼机事故1... 澎湃新闻记者 吕新文中国民用航空华北地区管理局4月22日公布《豪客通航“10•1”天津长芦汉盐旅游区...
卡塔尔埃米尔与美国总统特朗普通... 当地时间24日,卡塔尔埃米尔塔米姆与美国总统特朗普通电话,重点就中东地区局势以及伊朗与美国谈判问题交...
男子30年前被扣押2859克黄... 澎湃新闻记者 王鑫家住辽宁省大连市的潘永嘉近日向澎湃新闻反映称,三十年前,他在大连周水子机场被盖州市...
商务部:取消反制欧盟两家金融机... 中华人民共和国商务部令二〇二六年 第1号鉴于欧盟已取消对中国两家金融机构的制裁措施,现公布《关于取消...
过去24小时共有5艘船只通过霍... 总台记者当地时间24日获悉,过去24小时内,共有5艘船只通过霍尔木兹海峡,其中包括一艘伊朗油轮。(总...