我有一个ARKit Spritekit项目,我想为每个ARAnchor显示不同的图像。如何将自定义参数传递给SKView委托方法视图(nodeFor)
我对添加到每个ARAnchor的SKSpriteNode图像的最佳匹配方式有点困惑,因为SKScene
Scene类和视图控制器之间存在一些控制反转。
我在Scene.swift中添加锚,并在视图控制器中处理委托方法。
func view(_ view: ARSKView, nodeFor anchor: ARAnchor) -> SKNode? {
// Create and configure a node for the anchor added to the view's session.
// this image url needs to be dynamic and vary for each node
let imageURL = "https://farm1.staticflickr.com/[SOMEID].jpg"
let url = URL(string: imageURL)
let data = try? Data(contentsOf: url!)
let theImage = UIImage(data: data!)
let Texture = SKTexture(image: theImage!)
return SKSpriteNode(texture: Texture)
}
我的问题是这样的:我应该如何传递动态图像信息?
- 我能继承
ARAnchor
并设置自定义锚类IMAGEURL当我Scene.swift锚添加到ARSKView
- 我应该插入不Scene.swift和替代视图控制器的
ARAnchor
- 然后以某种方式保持与ARAnchor
和SKSpriteNode的链接?
所以即使我移动逻辑视图控制器 - 我仍然可能想要像#1那样子类ARAnchor? – MonkeyBonkey
@MonkeyBonkey我不建议将属性添加到ARAnchor子类中,因为它会导致我冻结。 –
我在ARAnchor子类中有一个属性。对于我来说,属性通过'view(_:nodeFor:)'是正确的,但随后丢失属性值。 – Caroline