Skip to main content

物理

Pickupabble 对象需要 3 个组件:

  • 刚体:允许对象与物理进行交互([称为刚体是因为没有变形]
  • 碰撞器:允许碰撞器与其他碰撞器碰撞(因此物体不会简单地穿过所有物体)
  • VRCPickup:允许在 VRChat 中抓取对象

要使 VRChat 对象可被抓取,请在 GameObject 中添加 VRCPickup 组件。
这将自动添加一个刚体(如果还没有的话)。

对撞机类型[按性能成本从低到高排列]:

  • 球体 ([1 个矢量]
  • Capsule (2 个矢量和它们之间的距离]
  • Box (一个体积)

网格对撞器会根据网格形成对撞器。如果应用到具有刚体的物体上,网格碰撞器应该设置为凸形,这样它就可以与其他具有刚体的物体碰撞,这些刚体也具有凸形网格碰撞器。
凸形碰撞器还会将碰撞网格限制为 256 个三角形。
此外,"凸 "与 "凹 "有关;碰撞器不是凹形的;例如,任何开口(如碗或杯子上的开口)都会被凸形碰撞器覆盖。
在为具有刚体的物体创建对撞器时,最好使用基元或基元组合,以获得性能和可信度兼具的效果。

正交视图模式(所有物体与摄像机的距离相等)对编辑碰撞器非常有帮助。要启用该模式,请单击场景视图右上角的方框。
例如,在一个啤酒瓶上,我会在可以滚动的部分周围使用一个胶囊对撞器,在胶囊内使用一个方框对撞器,方框对撞器延伸到瓶子的顶部和底部,这样瓶子就可以竖立起来。

要优化拾取器,请确保所有拾取器都位于层次结构根部的单个游戏对象之下。每个具有刚体的对象不仅需要在每一帧更新变换,还需要更新其所有父游戏对象的变换。确保所有拾取器都在一个父对象下,这样既能使层次结构井然有序,又不会浪费性能。

例如,如果您有一个地毯地板,您可以为其应用高摩擦力物理材料,为冰层应用低摩擦力物理材料。有几种物理材料带有 Unity Standard Assets[assetstore.unity.com]

对于复杂的网格,请勿使用网格粘贴器!(这非常耗费精力!)。 最好在对象上添加一个或多个基元(盒状、球状或囊状)对撞器,使对撞器与网格相匹配。
在三维建模程序(如 Blender)中,您可以在同一模型中创建一组更简单的网格,关闭它们的网格渲染器,并为更简单的网格添加网格对撞器。这将节省性能,而且大多数玩家不会注意到其中的差别。

Unity 还使用不同类型的连接。这些对于创建物理门之类的功能非常有用。

</span