gpt4 book ai didi

ios - Swift 4.2 - Cocoapods : Adding and accessing scnassets in resource_bundles

转载 作者:搜寻专家 更新时间:2023-10-31 22:53:27 25 4
gpt4 key购买 nike

尝试创建一个使用 .scnassets 文件夹的 cocoapod。该文件夹导入到 Resources 中,子对象没有任何问题,但我找不到将 .dae 文件加载到 SCNScene 。据我了解,XCode 如何将 .dae 转换为 .scn Assets 可能存在问题。

.podspec 包括:

  s.resource_bundles = {
'ARUtilsScenes' => ['ARUtils/Assets/ARScenes.scnassets']
}

正确地将 ARScenes.scnassets 加载到 Resources 文件夹中。我正在尝试在我的 Pod 中加载场景(在 Pod 中而不是使用 Pod 的项目,并且尝试了多种方法):

let arrowScene = SCNScene(named: "arrow.dae")

let arrowScene = SCNScene(named: "Resources/ARScenes.scnassets/arrow.dae")

let arrowScene = SCNScene(named: "arrow.dae", inDirectory: "Resources/ARScenes.scnassets", options: nil)

我尝试了各种文件/文件夹名称,并且能够加载图像,但我无法将 .dae 加载为 SCNScene .我是否需要将 .xib 文件添加到我的 resource_bundles,或者是否有其他方法确保 .scnassets 文件夹正确编译这些 .dae.scn 以及使它们可用于加载到 SCNScene 中?

最佳答案

假设 ZARKit 是您在 CocoaPods 中分发的框架。

.podspec 包括:

s.resource_bundles = {
'ARUtilsScenes' => ['ARUtils/Assets/ARScenes.scnassets']
}

那么你应该这样做

let bundle = Bundle(for: #Your Class#.self).
let resourcePath = bundle.path(forResource: <#T##String?#>, ofType: <#T##String?#>)
let resourceBundle = Bundle(path: resourcePath)

let url = resourceBundle.url(forResource: "ARScenes.scnassets/<#YourResourceName-arrow#>", withExtension: "<#scn#>")
let arrowScene = SCNScene(url: url)

编辑:Z. Bagley

接受的答案,但这是我使用的实际代码:

        // find bundle based on existing class in pod
let frameworkBundle = Bundle(for: ARUtilsClass.self) //ARUtilsClass is an empty class, Pod is only extensions for existing classes
// append the scenes bundle, scnassets, and scn/dae
let arrowURL = frameworkBundle.resourceURL?.appendingPathComponent("ARUtilsScenes.bundle/ARScenes.scnassets/newArrow.scn")
// create a node in parent
var arrow = SCNNode()
do {
// get arrow scene from bundle
let bundleArrowScene = try SCNScene(url: (arrowURL)!, options: nil)
// add arrow node from scene
arrow = bundleArrowScene.rootNode.childNode(withName: "arrow", recursively: true)!
} catch {
print("failed to find arrow resource")
}

关于ios - Swift 4.2 - Cocoapods : Adding and accessing scnassets in resource_bundles,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54202039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com