0

SceneKit で追加している 3D 戦場でカード ゲームをプログラミングしています。

戦場には奥行きがあり、3D オブジェクトの上部が城の上部であり、最下層が z 軸上でさらに下にあり、地面を表しています。

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

バトルグラウンドの 3D シーンの上に配置されたカード UI

3D オブジェクト内のさまざまな深さ (z 軸) でカードの UIView を描画したいと思います。地面のレイヤーに描画することもあれば、上のレイヤーに描画することもあります。

次のように、メイン シーンの rootNode に childNodes を追加することで、バトルグラウンドのさまざまな深さに 3D 要素をさらに追加することができました。

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

しかし、特に UIView を追加する必要があり、SCNScenes を追加する必要はありません。

1 つの SCNView を一番下の深さに設定し、その上に UI ビューを描画し、別の SCNView を設定してより高い z 軸の深さに成長させ、その上に UIView を描画し、同じカメラ/画面を共有するにはどうすればよいですか?

4

1 に答える 1

0

UIKit ではなく、SpriteKit でカードを描きます。

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

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

SCNSceneRenderer: overlaySKSceneを確認します。

于 2016-08-31T09:22:52.513 に答える