0

我正在使用 SceneKit 添加带有 3D 战场的纸牌游戏。

战场有一个深度,其中 3D 对象的顶部是城堡的顶部,而底层在 z 轴上更下方,代表地面。

当玩家手中有卡片时,我想在可能的顶层将它们绘制为 UIViews,我已经能够通过添加我的 GameControllerView 来做到这一点,它具有卡片的 UIViews 作为子视图,将其直接放置在3D场景的顶部。

卡 UI 放置在战场 3d 场景的顶部

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

通过将 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,在其上绘制 UIView,并让它们共享相同的相机/屏幕?

4

1 回答 1

0

我会用 SpriteKit 画牌,而不是 UIKit。

SceneKit 场景可以将 SpriteKit 场景显示为叠加层,您可以根据需要为卡片使用任意数量的精灵。

将 SpriteKit 与 SceneKit 一起使用是高效的。将 UIKit 与 SceneKit 一起使用会使您的帧速率下降。

检查 SCNSceneRenderer: overlaySKScene

于 2016-08-31T09:22:52.513 回答