2016-05-13 9 views
2

私は、シーンに2つのオブジェクト:ボールとボックスを追加する簡単なSceneKitプロジェクトを持っています。Scenekitシーンの周りのカメラの回転

私のことができるようにしたい:シーン の周りにカメラを回転させる1本の指で

  1. パンは、「移動」ボタンをクリックオブジェクトを選択し、それをドラッグしてオブジェクトを移動
  2. (PanGesture経由)新しい位置

に私はそれを有効にして)、ジェスチャー2を行うことができないので、私は、偽のallowsCameraControl =でこれをしたい、と私はラインの下、さらにpanGesturesを追加します。

カメラをシーンの周りで回転させることができないため、私は立ち往生しています。私はカメラが制約とオブジェクトの一つを見て持っている:

let constraint = SCNLookAtConstraint(target: globalSCNNode) 
constraint.gimbalLockEnabled = true 
globalCameraSCNNode.constraints = [constraint] 

が、このようなパンジェスチャーは何もしません。

func panGesture(sender: UIPanGestureRecognizer) { 
let translation = sender.translationInView(sender.view!) 
var action = SCNAction.rotateByX(0, y: 0.5, z: 0, duration: 0.1) 
globalCameraSCNNode.runAction(action) 

誰かが助けることはできますか? ありがとう、

答えて

1

LookAt制約は、panGestureで指定されたローテーションよりも優先されます。その制約を削除してみてください。

+0

ありがとうございました!私は拘束を解除し、カメラをボールに追加して、今度はシーンを回転させることができました。 PanGesturesの物理に関するチュートリアルや深刻なコードがWeb上にないことは非常に興味深いことが分かります。異なるパラメータのデバッグにもっと時間を費やす必要があります。あなたは良いものを知っていますか?また、例えば、後にallowCameraControl = trueのコードを見たい場合は、これをどこで見つけることができますか?ありがとう –

+0

SceneKitはオープンソースではありませんので、そのコードを見ることはまずありません。しかし、[この回答](http://stackoverflow.com/a/25674762/957768)でもそれを達成するためのヒントがあります。 – rickster

+0

http://infinitered.com/2015/02/10/a-seven-foot-globe-running-on-os-x-and-an-ipad-app-created-using-rubymotion-and-scenekit/ is読む価値がある。また、ノードにSCNGeometryが接続されている必要はありません。カメラは、あなたが好きなようにピボットする目に見えない「取り付けアーム」に置くことができます。 –

関連する問題