【发布时间】:2022-01-04 16:42:11
【问题描述】:
我正在尝试使用我的 iPad 和 Swift Playgrounds 4.0 进行编码。我尝试使用 SwiftUI example 1 或 example 2 进行图像跟踪。 iPad App里面可以创建文件夹,但是这里不能放Image……所以下面的代码不起作用:
func makeUIView(context: Context) -> ARView {
guard let referenceImages = ARReferenceImage.referenceImages(
inGroupNamed: "AR Resources",
bundle: nil)
else {
fatalError("Missing expected asset catalog resources.")
}
}
Here an Image from the Swift Playgrounds App
是否可以像使用 .usdz 模型一样使用根/主目录中的参考图像?
if let usdzModel = try? Entity.load(named: "drummer") {
anchor.addChild(usdzModel)
}
这是完整的代码:
import ARKit
import SwiftUI
import RealityKit
struct RealityKitView: UIViewRepresentable {
func makeUIView(context: Context) -> ARView {
let view = ARView()
// Start AR session
let session = view.session
let config = ARWorldTrackingConfiguration()
config.planeDetection = [.horizontal]
session.run(config)
// Add coaching overlay
let coachingOverlay = ARCoachingOverlayView()
coachingOverlay.autoresizingMask = [.flexibleWidth, .flexibleHeight]
coachingOverlay.session = session
coachingOverlay.goal = .horizontalPlane
view.addSubview(coachingOverlay)
// Set debug options
#if DEBUG
view.debugOptions = [.showFeaturePoints, .showAnchorOrigins, .showAnchorGeometry]
#endif
//AnchorEntity Bild
let anchor = AnchorEntity(.image(group: "AR Resources", name: "Test"))
// Create an image anchor by specifying the group name and image name of the AR resource
let box = ModelEntity(mesh: .generateBox(size: simd_make_float3(0.1, 0.03, 0.05)))
anchor.addChild(box)
view.scene.anchors.append(anchor)
//End AnchorEntity
return view
}
func updateUIView(_ view: ARView, context: Context) {
}
}
【问题讨论】:
-
documentation for
ARReferenceImagedefines an initializer 可以在您想使用不在 assets 文件夹中的图像时使用。 -
@EmilioPelaez 感谢您的快速响应!我是 Swift / AR 开发的新手,我用
init(_ image: CGImage, orientation: CGImagePropertyOrientation, physicalWidth: CGFloat)尝试了几件事,但没有任何效果......(我认为这是错误的?)
标签: swift swiftui augmented-reality arkit