如何获取Xcode+Vuforia中被跟踪3D模型/目标的名称?
获取Vuforia跟踪目标/3D模型名称的方法
一、从Vuforia Trackable直接获取目标名称
当Vuforia检测到跟踪目标时,直接通过Trackable对象就能拿到它的名称,这是最直接的方式:
- 在Vuforia的跟踪回调方法里(比如
didTrack或者onTrackableStateChanged),获取当前的Trackable实例 - 调用
trackableName属性即可拿到名称,代码示例:
// Swift 代码 func didTrack(_ trackable: Trackable) { let targetName = trackable.trackableName // 将名称传递给你的显示控件 yourDisplayLabel.text = targetName }
// Objective-C 代码 - (void)didTrack:(VUFBTrackable *)trackable { NSString *targetName = trackable.trackableName; self.yourDisplayLabel.text = targetName; }
二、从3D模型节点获取名称
如果你的3D模型是作为跟踪目标的子节点加载到场景中的(比如用SceneKit/ARKit),可以直接读取模型节点的name属性:
- 找到对应模型的SCNNode或ARAnchor节点
- 读取
name属性,示例代码:
// SceneKit 示例,假设模型节点是跟踪关联节点的子节点 if let modelNode = trackableAssociatedNode.childNodes.first { let modelName = modelNode.name ?? "未命名模型" yourDisplayLabel.text = modelName }
注意事项
- 要先在Vuforia Target Manager里给每个跟踪目标设置好唯一名称,否则无法获取正确的名称
- 如果是自行导入的3D模型,记得在创建节点时设置好
name属性,否则可能返回nil
内容的提问来源于stack exchange,提问作者Carlos Moreno
相关产品推荐
相关产品推荐

