Глядя на API, это в некоторой степени похоже на ответы, с которыми вы связались.
Используя ARSessionDelegate session(_ session: ARSession, didUpdate frame: ARFrame)
, вы можете получить доступ к rawFeaturePoints
только что переданного ARFrame.
Таким образом, это выглядело бы примерно так:
// Not actually tested
class MyARSessionDelegate: ARSessionDelegate {
var previouslyDetectedPointCount = 0
func session(_ session: ARSession, didUpdate frame: ARFrame) {
// Check if new points are detected
if previouslyDetectedPointCount != frame.rawFeaturePoints?.points.count {
// point count has changed
previouslyDetectedPointCount = frame.rawFeaturePoints!.points.count
}
}
}
Хотя, почему вы хотели бы искать конкретные пункты, любопытно.В документации четко говорится:
ARKit не гарантирует, что число и расположение необработанных характерных точек останутся стабильными между выпусками программного обеспечения или даже между последующими кадрами в одном и том же сеансе.