gpt4 book ai didi

ios - 带有 .dae 的 SCNNode 静态主体导致问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:18:58 24 4
gpt4 key购买 nike

我在 blender 中构建了一个景观模型,导出到 .dae 并添加到我的 xcode 项目中。

我已经加载了场景,然后将 child (景观网格)附加到我的 landscapeNode,加载完美。

但是,当我将静态物理体附加到 landscspeNode 时,我的 heroNode 在试图飞越陆地时似乎撞到了一堵看不见的墙上。

我正在寻找的功能是与我建模的土地发生明显的碰撞,因此 heroNode 无法飞过土地并被迫绕着它移动。

注意:我没有在 blender 中对 y 轴进行任何转换,xcode 也只是简单地将节点绕 -x 轴旋转 90 度。

编辑:我尝试添加物理形状的代码

landscapeNode.physicsBody = [SCNPhysicsBody bodyWithType:SCNPhysicsBodyTypeStatic shape:[SCNPhysicsShape shapeWithNode: [landscapeScene.rootNode childNodeWithName:@"Grid" recursively:NO] options:@{SCNPhysicsShapeTypeKey:SCNPhysicsShapeTypeConcavePolyhedron}]];

landscapeNode.physicsBody = [SCNPhysicsBody bodyWithType:SCNPhysicsBodyTypeStatic shape:[SCNPhysicsShape shapeWithNode: landscapeNode options:@{SCNPhysicsShapeTypeKey:SCNPhysicsShapeTypeConcavePolyhedron}]];

landscapeNode.physicsBody = [SCNPhysicsBody bodyWithType:SCNPhysicsBodyTypeStatic shape:[SCNPhysicsShape shapeWithGeometry: landscapeNode.geometry options:@{SCNPhysicsShapeTypeKey:SCNPhysicsShapeTypeConcavePolyhedron}]];

最佳答案

如果您在为节点创建物理体时没有指定其他选项,您将得到一个 convex hull包含该节点的几何形状。

因为您的风景是静态的,您可以使用更接近几何形状的凹形。 (请注意,这仅适用于静态物体。)为此,您需要:

  1. 使用bodyWithShape:type:创建主体的方法,而不是 staticBody
  2. 对于该方法,您需要传递 SCNPhysicsShape .使用 shapeWithGeometry:options:shapeWithNode:options: 创建一个。
  3. 对于 options 参数,传递包含键 SCNPhysicsShapeTypeKey 和相应值 SCNPhysicsShapeTypeConcavePolyhedron 的字典。

关于ios - 带有 .dae 的 SCNNode 静态主体导致问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27503183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com