对于AR和3D世界来说是非常新的东西。我正在尝试创建一个游戏,其中物理和碰撞非常重要。我在游戏中使用的对象非常复杂,因此我试图首先将物理添加到更简单的场景中。在这种情况下,我希望能够彼此堆叠两个盒子。不幸的是,第二个框似乎悬停在第一个框上。在ShowPhysicShape调试选项下面的图像中启用了该功能。
https://imgur.com/a/jFCvXxW(悬停框的图像)
当前,我将以下代码应用于这些框:
白盒子:
boxNode.Geometry = boxNode.FlattenedClone().Geometry;
boxNode.PhysicsBody = SCNPhysicsBody.CreateBody(SCNPhysicsBodyType.Dynamic, SCNPhysicsShape.Create(boxNode, SCNPhysicsShapeType.ConcavePolyhedron));
红色框:
boxNode.PhysicsBody = SCNPhysicsBody.CreateBody(SCNPhysicsBodyType.Dynamic,
SCNPhysicsShape.Create(boxNode, SCNPhysicsShapeType.BoundingBox));
我已经尝试了几种有关物理形状类型的事情。凸包和边界框类型对于我要使用的复杂对象不够精确。我还尝试为每个子节点提供一个具有简单静态物理形状的物理实体,并为父节点提供一个具有动态形状的物理实体。这产生了一些奇怪的行为。
我很好奇是否有一些关于如何使用复杂对象的良好代码示例。场景套件的文档对我来说似乎还不够。
注意:我在使用Scenekit / Arkit的Xamarin项目中进行即时编码。