使用相同的摄像头添加不同深度的多个SCNView

时间:2016-08-25 18:38:24

标签: ios objective-c 3d scenekit scnscene

我正在编写一个带有3D战场的纸牌游戏,我正在添加SceneKit。

战场有一个深度,3D物体的顶部是城堡的顶部,底层在z轴上向下,代表地面。

当玩家手中有牌时,我想在最顶层绘制UIViews,我已经能够通过添加我的GameControllerView来实现这个目标,其中UIViews的卡作为子视图,这些地方它直接在3D场景的顶部。

card UI placed over top of battleground 3d scene

我想在3D对象内的不同深度(z轴)绘制我的UIViews卡片 - 有时将它们绘制在地面上的图层上,有时将它们绘制在顶部的图层上。

我已经能够通过将childNodes添加到主场景的rootNode,在战场上添加更多不同深度的3D元素,如下所示:

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

但我特别需要添加UIViews而不是更多的SCNScenes。

如何在底部深度设置一个SCNView,在其上绘制UI视图,设置另一个增长到更高z轴深度的SCNView,在其上绘制UIViews,让它们共享同一个摄像头/屏幕?

1 个答案:

答案 0 :(得分:0)

我会用SpriteKit绘制卡片,而不是UIKit。

SceneKit场景可以将SpriteKit场景显示为叠加层,您可以根据需要使用尽可能多的精灵。

将SpriteKit与SceneKit一起使用是有效的。将UIKit与SceneKit一起使用会降低帧速率。

检查SCNSceneRenderer:overlaySKScene