如何从 Reality Composer 加载场景作为模型实体而不是普通实体?

问题描述 投票:0回答:0

我正在尝试从 Reality Composer 项目的场景中将

Entity
加载到我的代码中。

我直接接触到自动生成的

.reality
文件,因为我不希望它自动放置在它检测到的第一个平面上。我遵循了文章Taking Control of Scene Anchoring中的文档。

示例项目名称是

Experience
,里面有2个场景。

  1. 新创建的项目自动附带的自动生成的盒子。
  2. 六角形进口USDZ锉刀

我用来加载两者的代码

ModelEntity
如下:

let url = Bundle.main.url(forResource: "Experience", 
                        withExtension: "reality")!
            .appending(path: "SceneName", directoryHint: .notDirectory)
        
let modelEntity = try! Entity.loadModel(contentsOf: url)

其中

SceneName
Box
Hexagon
.

都无法加载。

如果我改为使用以下代码,它们会成功,但它们是作为

Entity
而不是
ModelEntity
加载的:

let modelEntity = try! Entity.load(contentsOf: url)

是否可以将对象加载为

ModelEntity
而不是
Entity
?到目前为止,我在这篇post中找到的方法是遍历子级层次结构,找到第一个
ModelEntity
,并将其模型和物理复制到其父级上,(在我的情况下有效,因为我只在场景中有一个物体)。

swift arkit realitykit reality-composer
© www.soinside.com 2019 - 2024. All rights reserved.