2016-08-25 5 views
0

3D戦場でカードゲームをプログラミングしています。私はSceneKitを追加しています。同じカメラで異なる深度に複数のSCNViewを追加する

戦場には、3Dオブジェクトの上部が城の上部にあり、下部のレイヤーが地面を表すz軸上にさらに下がっています。

プレイヤーが手札にカードを持っている場合、可能な限り上のレイヤーにUIViewとして描画したいのですが、私は自分のGameControllerViewを追加してカードのUIViewをサブビューとして追加することができました。 3Dシーンの上に直接配置します。

card UI placed over top of battleground 3d scene

私は、3Dオブジェクト内の異なる深さ(z軸)でのカードの私のUIViewsを描きたい - 時には上の層の上にそれらを描く、地面上の層の上にそれらを描きます上。

私はこのように、私のメインのシーンのルートノードへのchildNodesを追加することで戦場に異なる深さでより多くの3D要素を追加することができました:

SCNScene *enemy_life = [SCNScene  sceneNamed:@"battle_enemy_life.dae"]; 
[myView.scene.rootNode addChildNode:enemy_life.rootNode]; 

が、私は特に多くのないUIViewsを追加する必要があり、 SCNシーン。

SCNViewを一番下に設定し、UIビューを上に描画し、別のSCNViewをz軸の深度まで拡大し、上にUIViewを描画して同じカメラを共有するには/画面?

答えて

0

UIKitではなくSpriteKitでカードを描画します。

SceneKitシーンは、SpriteKitシーンをオーバーレイとして表示でき、カードに必要な数のスプライトを使用できます。

SceneKitでSpriteKitを使用すると効率的です。 SceneKitでUIKitを使用すると、フレームレートが低下します。

SCNSceneRenderer:overlaySKSceneを確認してください。

関連する問題