物理

Q1:UWA的报告中指出我们所使用的刚体超出了限制,我们经过测试发现只要使用CharacterController就会产生一个隐藏的刚体。而我们的角色移动是会使用CharacterController的。 为了避免这种情况,我们使用了CapsuleCollider来替代CharacterController接受点击,同时使用设置位置的方法来替代CharacterController的move。

  1. 请问这样做是否有风险,并且是否可以降低我们在刚体和物理系统方面的开销呢?
  2. 同期我们观测到了一个以前没有关注过的警告。其内容为:
    Static Collider.Move (Expensive Delayed cost),请问该报错是否与我们的调整相关?能够导致该警告的原因可能会有哪些呢?

    1.多数情况下,RigidBody + CapsuleCollider 与 CharacterController 相比会高效一些,因为 move 函数本身会进行较复杂的模拟运算;
    2.Static Collider.Move (Expensive Delayed cost) 意味着场景中有静态碰撞体(不带有RigidBody的Collider)发生了移动,而该操作在Unity 4.x版本的PhysX 中会在后续的模拟中产生较高的开销,但在 5.x 中理论上开销并不明显。如果要消除该问题,只需定位到发生位移的Collider并挂上RigidBody 组件,打开其is kinematic 选项即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 首先要熟悉一些基本的力学名词及相关公式 刚体(Rigidbody):刚体是指在运动中和受到力的作用后,形状和大小不...
    FLY旳影子阅读 11,691评论 0 11
  • 一、引言 物理引擎是一个很大的标题,在这里,我只记录一些我们较为常用的一些东西,其他的一些深入的东西,随着我们的开...
    SimanX阅读 2,132评论 0 3
  • 碰撞发生的必要条件,双方物体必须有一个是刚体,且必须都有Collider。 碰撞分为三种碰撞 静态碰撞 只有一个有...
    LeoYangXD阅读 1,544评论 0 1
  • 一、物理编辑器的使用 在本系列博客的第一篇就介绍了如何使用Box2D内置的几种方式创建刚体的材质,然而我们在开发游...
    babybus_newapp阅读 3,110评论 0 4
  • 散发岁月的霉香 承载着少年的梦想 积蕴人生的力量 心声在枕边写下 目标在前进中定位 稚嫩的肩膀 拙劲的笔法 天空在...
    昊水长天阅读 247评论 0 1