因此,我将一个Reality Composer文件"Experience"加载到一个包含三个场景的XCode项目中.
我已经添加了在XCode中工作的行为和动作.操作非常完美,当我点击不同的对象时,隐藏并显示另外两个场景.
但在一个名为"立方体"的场景中,我添加了两个立方体.我将这两个立方体归类为"两个立方体",根据苹果的文档,它们现在的行为将像一个对象:
您可以将场景中的多个资源合并为一个组.成组 在现实composer 的场景中,对象表现为单个组合对象 查看.
这个场景没有相关的动作,I only wanted to make the two cubes draggable and scalable when I pinch.我还没能做到这一点.即使我以不同的方式命名每个立方体,也没有任何react .
我怀疑这与对象分组时发生的事情有关[参考苹果文档here],但我还没有找到解决方案.我看了这方面的专家《天才Andy Jazz》给出的很多答案,但一无所获.我这样做是因为我有一个更大的模型,我正在开发我自己的应用程序,每个场景大约有20个子元素…所以我希望我能在这里想出一个解决方案,以后我可以用来做更大的事情……
我try 了多个现实合成器模型,在手机上查看现实文件时可以拖动,但当我将场景导入Xcode模型时,这一功能被删除了.
我什么都试过了,包括一个立方体...拖拽也不起作用.
import UIKit
import RealityKit
class ViewController: UIViewController {
@IBOutlet var arView: ARView!
override func viewDidLoad() {
super.viewDidLoad()
let boxAnchor = try! Experience.loadBox()
arView.scene.anchors.append(boxAnchor)
let cubesAnchor = try! Experience.loadCubes()
arView.scene.anchors.append(cubesAnchor)
guard let addingGestures = cubesAnchor.twoCubes as? ModelEntity else { return }
addingGestures.generateCollisionShapes(recursive: true)
arView.installGestures([.all], for: addingGestures as (Entity & HasCollision))
DispatchQueue.main.asyncAfter(deadline: .now() + 2.0){
self.arView.scene.anchors.removeAll()
let coneAnchor = try! Experience.loadCone()
self.arView.scene.anchors.append(coneAnchor)
print(coneAnchor)
}
func handleTapOnEntity(_ entity: Entity?) {
guard let entity = entity else { return }
}
}
}
请参阅相关问题here