• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 如何使用场景文件中的几何图形与多个对象(几何图形)?

[复制链接]
菜鸟教程小白 发表于 2022-12-11 18:31:11 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个混合器文件,我已导出为 DAE/collada,然后使用 Xcode 转换为 Scenekit 的场景文件。我在使用场景文件中的几何图形时遇到问题。

场景文件(“model.scn”)非常基本:

  • 组(无几何元素)
    • Shape1(几何元素)
    • Shape2(几何元素)
    • Shape3(几何元素)

当我尝试使用该模型时,我无法将 3 个形状的组合几何体用于与 SCNPhysicsBody 一起使用的 SCNGeometry。

我尝试了各种方法,但都不起作用:

方法 1

let scene = SCNScene(named: "art.scnassets/model.scn")!
let node = scene.rootNode.childNode(withName: "Group", recursively: true)!
guard let geo = node.geometry else { return }
// node.geometry is nil so returns here

let physicsBody = SCNPhysicsBody(type: .kinematic, shape: SCNPhysicsShape(geometry: geo))
// this is what I need the custom/aggregate geometry for

方法2

let scene = SCNScene(named: "art.scnassets/model.scn")!
let geoNode = SCNNode()
let node1 = scene.rootNode.childNode(withName: "Shape1", recursively: true)!
let node2 = scene.rootNode.childNode(withName: "Shape2", recursively: true)!
let node3 = scene.rootNode.childNode(withName: "Shape3", recursively: true)!
geoNode.addChildNode(node1)
geoNode.addChildNode(node2)
geoNode.addChildNode(node3)

// expected geoNode.geometry is not nil, but it is

根据Apple's documentation

A node can have only one geometry attached to it. To combine geometries so they can be controlled or animated together, create a node with no geometry and add other nodes to it.

但它似乎无法正常工作,因为父节点的几何选项仍然为零。

我想做的事情应该很简单,但我做错了。我想使用我的 dae/collada/scene 文件中的几何图形。我不想使用默认值(立方体、圆柱体、金字塔、球体、圆环等)。

我做错了什么?谢谢!



Best Answer-推荐答案


SceneKit 不会自动为您合并 SCNGeometry 实例。为此,您必须先创建新的 SCNGeometrySourceSCNGeometryElement 对象,然后再创建合并的 SCNGeometry

文档可能有点误导。它想说的是,如果您想同时操作多个几何图形,那么将多个节点分组在一个共同的父节点下会使事情变得更容易,因为操作这个单个节点会影响(平移、旋转、缩放)它的所有子节点。

请注意,在您的情况下,您可以使用 init(shapes:transforms显式合并多个 SCNPhysicsShape 实例。首先为每个几何体创建一个形状,然后创建组合形状。 transforms 参数将由 transform 组成分组在其共同父级下的节点数。

关于ios - 如何使用场景文件中的几何图形与多个对象(几何图形)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45778853/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap