- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个应用程序可以检测一些图像并做一些效果(主要是在图像中播放视频)只要在检测到图像时触发 func 渲染器,是否有在未检测到图像时触发的函数?
当没有检测到图像时,我想停止播放视频。谢谢!
最佳答案
如果您查看文档,您会发现 ARImageAnchor
符合 ARTrackable 协议(protocol)
,其中:
is adopted by ARKit classes, such as the ARFaceAnchor class, that represent moving objects in a scene.
ARSCNView and ARSKView automatically hide the nodes for anchors whose isTracked property is false.
ARKit automatically manages representations of such objects in an active AR session, ensuring that changes in the real-world object's position and orientation (the transform property for anchors) are reflected in corresponding ARKit objects. The isTracked property indicates whether the current transform is valid with respect to movement of the real-world object.
因此,您可以检测您的 ARImageAnchor 当前是否正在使用像这样的东西作为启动器进行跟踪:
//--------------------------
//MARK: - ARSessionDelegate
//--------------------------
extension ViewController: ARSessionDelegate{
func session(_ session: ARSession, didUpdate anchors: [ARAnchor]) {
//1. Enumerate Our Anchors To See If We Have Found Our Target Anchor
for anchor in anchors{
if let imageAnchor = anchor as? ARImageAnchor, imageAnchor == videoAnchor{
//2. If The ImageAnchor Is No Longer Tracked Then Handle The Event
if !imageAnchor.isTracked{
}else{
}
}
}
}
}
其中 videoAnchor
只是一个 ARImageAnchor
我已将引用存储为 全局变量
。
或者,如果您想在特定的 SCNNode
位于相机的 Frostrum
之外时取消操作,您可以这样做:
/// Stops All VideoPlayers Outside Of Frostrum
///
/// - Parameter currentVideoNode: SCNNode
func stopAllVideoPlayersOutsideOfPointOfView(){
//a. Get The Current Point Of You & Our SCNScene
guard let currentPointOfView = self.augmentedRealityView?.pointOfView,
let scnView = self.augmentedRealityView else { return }
//b. Loop Through All The Hierachy
if let childNodes = self.augmentedRealityView?.scene.rootNode.childNodes{
childNodes.forEach { (node) in
//c. If Our Node Isn't In View Of The Camera Then Stop The Video
if !scnView.isNode(node, insideFrustumOf: currentPointOfView){
}
}
}
}
希望对你有帮助
关于ios - ARKIT 2.0 - ARImageTrackingConfiguration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52442108/
ARKit 2 添加了一个新配置:ARImageTrackingConfiguration,根据 SDK可以有更好的性能和一些新的用例。 在 Xcode 10b2 上对其进行试验(请参阅 https:
我想将两个 3D 模型链接到两个不同的跟踪器。我将跟踪器捕捉到引用照片,但我不明白如何在 ARImageTrackingConfiguration 中同时跟踪两个对象 guard let tracke
以下属性为我返回false,但我无法理解为什么。 ARImageTrackingConfiguration.isSupported ARWorldTrackingConfiguration.isSup
我有一个应用程序可以检测一些图像并做一些效果(主要是在图像中播放视频)只要在检测到图像时触发 func 渲染器,是否有在未检测到图像时触发的函数? 当没有检测到图像时,我想停止播放视频。谢谢! 最佳答
在新的 arkit 2.0 文档中,它解释:并且可以准确跟踪图像何时从 View 中消失(或之后重新出现) 如何通知我图像不可见?我找不到有关它的文档。 谢天谢地,凯文 最佳答案 ARImageAnc
我是一名优秀的程序员,十分优秀!