网站大量收购闲置独家精品文档,联系QQ:2885784924

2025年Unity中的物理系统 .pdfVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。——苏轼

Unity中的物理系统

⽂章⽬录

1.概述Rigidbody和Collider

Unity中的物理模拟,需要为对象添加2个组件:Rigidbody(刚体)和Collider(碰撞器),分别扮演了不同的⾓⾊。

1.1刚体Rigidbody

刚体,定义了对象收到外⼒后,如何模拟其⾏为,如翻滚,掉落。

当为⼀个对象添加了Rigidbody组件后,就会模拟受重⼒⽽掉落。如果再加上collider组件,则会响应外部的⼒,⽽运动。

添加Rigidbody后,我们就不能通过transform组件来移动物体了,只能由物理系统来模拟驱动。当然这不是绝对的,某些特定情境,需

要关掉物理模拟,将物体摆放到指定位置,再重新打开物理模拟。

有时,我们希望对象参与物理模拟,但是其⾏为还是由逻辑控制,⽐如,对于游戏内的NPC,我们需要由代码控制其运动,同时⼜需要添加

rigidbody,这样才能被Trigger检测到,对于这种情况,可以将Rigidbody设置为动⼒学物体(IsKinemiac)。Rigidbody的Is

Kinematic开关在运⾏时改变,会影响效率。

Sleeping

当物体的运动速度低于于定义的线性或旋转速度,则物理系统会将对象设置为sleeping状态,停⽌update,以节省性能开销。当由受到外

部的⼒时,再awake,开始update。

WakeUP

特殊情况下,可能会出现问题,⽐如,我们将⼀个sleeping的茶壶对象下⾯的桌⼦在脚本中移⾛了,因为这个过程没有产⽣⼒,所以茶壶不

会awake,就会悬浮在那⾥。物理系统没有提供解决办法,这需要我们⾃⼰在代码中将茶壶awake,调⽤Rigidbody.WakeUp()接⼝来⼿动

唤醒。

1.2碰撞体Colliders

1.2.1Collider

定义了物体的形状来进⾏碰撞模拟。物理碰撞体的形状不需要严格和物体⼀致,只要能表⽰其物理形状即可。⽐如⼀个复杂的⼈,我们可以

⽤⼀个胶囊体来定义其碰撞形状。

Unity内建了很多碰撞体,以下时常⽤的碰撞体:

BoxCollider⽴⽅体碰撞体

SphereCollider球形碰撞体

CapsuleCollider胶囊碰撞体

MeshCollider从对象的⽹格创建碰撞体。MeshCollider之间不⽀持碰撞检测,效率太低。可以将MeshCollider的Convex选项打

开,则能⽀持MeshCollider之间的碰撞检测,同时提⾼性能。

WheelCollider创建载具的轮⼦的碰撞体

TerrainCollider处理Unity地形系统的碰撞

2D中相应的BoxCollider2D,CircleCollider2D,CapsuleCollider2D,以及其它转为2D建⽴的碰撞体类型,如PolygonCollider2D。

穷则独善其身,达则兼善天下。——《孟子》

Box,Sphere,Circle,Capsule这些简单碰撞体的效率相对都是较⾼的,建议使⽤这些简碰撞体。

效率排序:Sphere,Capsule,Box,Cilinder,ConvexMesh,Mesh,越来越慢

组合碰撞体⼀个物体上挂多个简单碰撞体来模拟其形状,这种就是组合碰撞体,组合碰撞体只能有⼀个刚体。

**注意:**碰撞体对象进⾏了不等⽐例缩放后,碰撞检测可能失效,所以缩放必须时等⽐例的。

物理材质物理发⽣碰撞时,需要根据其表⾯物理材质来计算最终的受⼒。例如冰⾯很滑,篮球摩擦⼒很⼤,且很有弹性,这些参数是由物

理材质定义的,需要仔细调节物理材质参数来实现我们的模拟效果。

1.2.2碰撞体分类

根据物体是否有刚体组件,以及其IsKinematic属性的不同设置,其物理表现分成三类:

静态碰撞体

只有Collider,没有Rigidbody。通常管卡的静态部分,⽐如建筑,障碍,是该类型。

刚体碰撞体

Collider+Rigidbody+none-kinematic,正常物理对象,物理系统会⼀直进⾏碰撞检测,模拟物理运动效果。

Kinematic刚体碰撞体

Collider+Rigidbody+Kinematic,通常⽤在经常需要变化物理状态的碰撞体上,⽐如会移动的门。与静态碰撞体不同,该类型会对

其它物体长⽣摩擦⼒,在发⽣碰撞时唤醒其它刚体对象。常见例⼦,布娃娃,是⼀个Kinem

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档