如何在 Panda3D 中使用加载模型作为碰撞实体?

How to use loaded model as collide solid in Panda3D?

我是 panda3d 的新手,目前正在做一个小项目,需要对自定义模型进行碰撞检测。在 panda3d 手册和示例项目中,我只能找到有关如何附加 panda3d 预定义碰撞实体(例如 CollisionSphere)的说明。但是我正在考虑的是如何将加载的模型(例如egg文件)用作into对象,有没有示例代码?

最好的方法是标记 .egg 模型,例如让 .egg 加载器自动生成 "into" 碰撞多边形。如果您从 Blender 导出模型,这可以通过在名为 "Collide" 的逻辑面板中添加字符串游戏 属性 并将其设置为 Polyset keep descend 来完成。否则,您可以在文本编辑器中编辑 .egg 文件,并在所需的 <Group> 条目下添加标签 <Collide> { Polyset keep descend }。 Roaming Ralph 示例程序正在使用此方法。

您可以选择告诉 Panda3D 将可见几何体视为 "into" 碰撞几何​​体,而不是让 .egg 加载器构建这些专门的碰撞多边形。这将比上述方法慢。您可以通过在相关模型上使用所需的 "into" 碰撞掩码调用 setCollideMask(...) 来启用此功能。

恐怕你不能将任意几何体用作 "from" 实体。