當前我遇到iOS平臺上的問題。基本上,我在2D環境中加載一個指向東的箭頭(上邊是北,左邊是西邊,右邊是東邊,下邊是南邊)。我預計它可以在3D環境中指向真正的東方,這樣它會自動旋轉到正確的方向。我畫了一張照片來描述我的情況。 (虛線箭頭是我裝箭頭和實線箭頭是我想要的東西,如果我使用核心運動數據)指向SceneKit中的正確方向
現在我做
let motionManager = CMMotionManager()
motionManager.deviceMotionUpdateInterval = 1.0/60.0
if motionManager.isDeviceMotionAvailable {
motionManager.startDeviceMotionUpdates(to: OperationQueue.main, withHandler: { (devMotion, error) -> Void in
parent_arrows[0].orientation = SCNQuaternion(-CGFloat((motionManager.deviceMotion?.attitude.quaternion.x)!), -CGFloat((motionManager.deviceMotion?.attitude.quaternion.y)!), -CGFloat((motionManager.deviceMotion?.attitude.quaternion.z)!), CGFloat((motionManager.deviceMotion?.attitude.quaternion.w)!))
})}
的片段無法自動使箭頭旋轉到正確的方向。我的想法是獲取設備和北面之間的角度,然後將此角度應用於箭頭的方向。但是,我怎樣才能將角度添加到四元數?還有什麼其他的想法來實現這一點?
實際問題是什麼?是否正在更新'parent_arrows [0]',並且更新沒有顯示? 'parent_arrows [0]'沒有更新嗎?它是更新和顯示,但顯示錯誤的方向? – Grimxn
使問題變得簡單,我加載一個3D箭頭,並且我希望這個箭頭指向方向(例如:東)。我回答了我下面得到的,但似乎萬向節鎖出來了。 – OtakuFitness