मैं समवर्ती दोनों ARKit और Scenekit सीखने की प्रक्रिया में हूँ में 'कैमरा' की वर्तमान स्थिति प्राप्त करें, और यह एक चुनौती का एक सा हो गया है।ARKit - दृश्य
एआरवर्ल्डट्रैकिंग सत्र कॉन्फ़िगरेशन सत्र के साथ, मैं सोच रहा था कि क्या किसी को दृश्य सत्र में उपयोगकर्ता के 'कैमरा' की स्थिति प्राप्त करने का कोई तरीका पता था। विचार यह है कि मैं किसी ऑब्जेक्ट को उपयोगकर्ता की वर्तमान स्थिति की ओर एनिमेट करना चाहता हूं।
let reaperScene = SCNScene(named: "reaper.dae")!
let reaperNode = reaperScene.rootNode.childNode(withName: "reaper", recursively: true)!
reaperNode.position = SCNVector3Make(0, 0, -1)
let scene = SCNScene()
scene.rootNode.addChildNode(reaperNode)
// some unknown amount of time later
let currentCameraPosition = sceneView.pointOfView?.position
let moveAction = SCNAction.move(to: currentCameraPosition!, duration: 1.0)
reaperNode.runAction(moveAction)
हालांकि, ऐसा लगता है कि currentCameraPosition हमेशा [0,0,0] है, भले ही मैं कैमरे इधर-उधर जाने कर रहा हूँ। कोई विचार क्या मैं गलत कर रहा हूँ? आखिर में विचार यह है कि जब तक यह कैमरे के सामने न हो तब तक ऑब्जेक्ट को अदृश्य क्षेत्र के चारों ओर घुमाएगा और फिर इसे एनिमेट करेगा: Rotate SCNCamera node looking at an object around an imaginary sphere (जिस तरह से उपयोगकर्ता ऑब्जेक्ट को उनके प्रति एनिमेट करता है)
किसी भी मदद के लिए धन्यवाद।
यह काम करता है की जरूरत है, लेकिन आप यह भी सत्र के 'currentFrame' हो रही द्वारा सत्र प्रतिनिधि किया जा रहा बिना फ्रेम प्राप्त कर सकते हैं संपत्ति। – rickster
@rickster आप तंग कर रहे हैं और मैं इसका जवाब संपादित किया है, लेकिन आम तौर पर आप अन्य नोड आप पर प्रतिक्रिया अपनी स्थिति, आप के आसपास का पालन करते हुए जैसे बदलते करना चाहते हैं। फिर आप नए कैमरे पर निरंतर अपडेट चाहते हैं वैसे भी। – orangenkopf
सच है। प्वाइंट, है कि आपके ऐप अन्यथा की स्थापना की है पर निर्भर करता है, आप या तो ARKit पहुंचाने आप 60 fps फ्रेम और आप प्रतिपादन के रूप में आप उन्हें प्राप्त हो सकता था, या आप अपने स्वयं (तक) में पाश प्रस्तुत करना चलते रह सकते 60 fps और पूछना हर बार एक फ्रेम के लिए ARKit जब आप एक की जरूरत है। यह दोनों तरीकों का समर्थन करता है, इसलिए आप जो चाहें उसका उपयोग करें। – rickster