我需要在給定的位置在場景中顯示一些包含通知的視圖。無論距離如何,此通知都應保持相同的大小。但最重要的是,它應該看起來像2D對象,無論旋轉相機有什麼。我不知道我是否可以實際插入一些2D對象,這會很好。到目前爲止,我正在試驗包含Box的SCNNode。我不知道如何讓它們總是朝相機旋轉(在每個軸上旋轉)。我試圖使用SceneKit - 在(x,y,z)場景中顯示二維視圖
let lookAt = SCNLookAtConstraint(target: self.cameraNode)
lookAt.gimbalLockEnabled = true
notificationNode.constraints = [lookAt]
這幾乎可以工作,但節點都以某種隨機角度旋轉。看起來像應用旋轉的UIView。有人可以幫我弄這個嗎?
這並不是我真正需要的,我希望這些物體在給定X,Y,Z的3D世界中停留,這樣當我旋轉相機對象時,它們就像在3D世界中一樣顯示,它們可以進入屏幕。但我需要這些物體朝向相機,它位於(0,0,0)處。我試圖使用SCNLookAtConstraint,但當對象被移動時(他們需要移動1秒的動畫),我遇到了這個問題。我確定有一些方法可以計算給定位置的軸心,以便節點朝向相機,但我找不到它。 –
這種方法幾乎可行,但是存在一個問題 - 當移動動畫開始時,對象會翻轉回原來的旋轉狀態,因爲我正在移除約束,當動畫完成時它會翻轉回來。我需要這個約束來從舊值創建到新值,所以它很流暢。可能我需要使用其他一些方法,因爲這隻有在重新設置約束條件時才起作用。 (SCNAction.moveTo(enuLocation,duration:1),completionHandler:{' 'node.constraints = [SCNLookAtConstraint(target:self.cameraNode)]' '} node.runAction )' –