问题描述
感谢您的帮助!
我只是想知道我想问你什么。目前,我正在开发一个AR应用程序,并且正在使用不同类型的模型文件USDZ,Reality和RCProject进行游戏。
Whit Realityfile和USDZ易于使用,可以根据以下输入来调用不同的模型:
func loadmodelRealityFile(modelNamed model: String){
do {
let modelEntity = try Entity.load(named: model,in: .main)
let anchorEntity = AnchorEntity(plane: .any)
anchorEntity.addChild(modelEntity)
arView.scene.addAnchor(anchorEntity)
} catch {
fatalError("Failed to load realityFile.")
}
}
示例:
loadmodelRealityFile(modelNamed: "Seehorse1")
那很好,因为我可以使用Strings从按钮或类似的东西上调用它。
工作.rcproject文件看起来要困难得多,而且我不知道该如何像在USDZ或Realityfile中那样在func中使用它。
//MARK: - loadmodelRCProjectFile
func loadmodelRCProjectFile(modelNamed model: Bracket.Szene1){
do {
let bracketEntity = try model
let bracketAnchor = AnchorEntity(plane: .any)
bracketAnchor.addChild(bracketEntity)
arView.scene.addAnchor(bracketAnchor)
} catch {
fatalError("Failed to load RCProjectFile.")
}
}
我不知道如何处理代码中的model: Bracket.Szene1
部分,因为我找不到定义默认方法来调用诸如RCProject.Szene
之类的输入方法的方法。我没有找到有关Documentation甚至Apple推出的Reality Composer和.rcproject的方法。
使用变通办法为我的应用中的每个模型编码功能都将使我的代码繁琐...
如果您能帮助我,那将很棒!因为.rcproject工作真棒,我认为Apple会进一步推广.rcproject。
我找到了解决此挑战的可行解决方案:
func loadmodelRCProjectFile(modelNamed model: RealityKit.Entity){
do {
let bracketEntity = try model
let bracketAnchor = AnchorEntity(plane: .any)
bracketAnchor.addChild(bracketEntity)
arView.scene.addAnchor(bracketAnchor)
} catch {
fatalError("Failed to load RCProjectFile.")
}
}
现在我面临着异步加载的下一个问题:
func loadFrontSkirtObjectDetection(project projectNamed: xxx,scene loadScene: xxx){
FrontSkirtObjectDetection.loadSzeneAsync {[weak self] result in
switch result {
case .failure(let error):
print(error.localizedDescription)
case .success(let entity):
self?.arView.scene.anchors.append(entity)
}
}
}
有人知道如何处理“ xxx”和“ xxx”吗?
非常感谢你们! :) 亚历克斯
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)