swift - 为 SceneKit 地形节点创建 SCNPhysicsBody?
问题描述
我有一个从 SceneKit 中的柏林噪声创建的地形,现在我想向地形添加物理。但是,简单地terrain.physicsBody = SCNPhysicsBody(type: .static, shape: nil)
在 SceneKit 中将地形的物理形状自动转换为凸面形状会导致结果。现在,如果您将任何东西放在地形上,它将漂浮在地形边界框的平面上的空中,而不是粘在地面上。
如何修改 SCNPhysicsBody 的行为,使其模拟地形的物理特性?
解决方案
由于 SceneKit 没有专用的地形对撞机,也不允许您创建自定义对撞机,因此我通过使用凹多面体物理形状来解决它。
node.physicsBody = SCNPhysicsBody(type: .static, shape: SCNPhysicsShape(geometry: geometry, options: [SCNPhysicsShape.Option.type: SCNPhysicsShape.ShapeType.concavePolyhedron]))
推荐阅读
- php - 模型厂就是这样根据生日返回年龄的
- javascript - 如何使用 HTML 中的 Javascript 从对象获取多个输出?
- scala - 在包含整数的字符串列表中查找元素
- bash - Bash 脚本中的子函数
- python - Bootstrap 和 Flask - 如何让卡片堆叠在一起
- python - 将某些格式奇怪的 df 行更改为列
- jhipster - 有 docker compose 问题
- rest - 以 RESTful 方式重新排序项目
- vue.js - 如何从vue axios响应中检索表的数字列名的值
- azure-iot-central - 与 azure iot Central 的设备属性一起使用的位置的正确格式是什么?