在单个屏幕中结合Scenekit和Spritekit

3

如果这是一个新手问题,我很抱歉。我仍在努力了解Swift和SpriteKit / SceneKit。

是否可以在单个视图中结合SpriteKit和SceneKit,例如使用SpriteKit在屏幕的某一部分渲染地图,并使用SceneKit渲染主要的3D视图?

2个回答

7
是的,您可以使用WWDC上展示的各种演示来实现。请查看SCNSceneRendereroverlaySKScene属性。

我听说过,在WWDC(苹果开发者大会)上可能有人提到了反过来的方式——在SpriteKit之上绘制SceneKit——应该是可行的,但我还没有找到确凿的证据。有线索吗? - Jonny

0

使用 SpriteKitSceneKit 中的一种方式如下:

SCNView *sceneView = [[SCNView alloc] initWithFrame:[[UIScreen mainScreen] bounds] options:@{@"SCNPreferredRenderingAPIKey": @(SCNRenderingAPIOpenGLES3)}];
[self.view addSubview:sceneView];
sceneView.scene = [SCNScene scene];

// ... whatever else you're doing

SKContainerOverlay *skOverlay = [[SKContainerOverlay alloc] initWithSize:self.sceneView.bounds.size];
skOverlay.delegate = self;    
self.sceneView.overlaySKScene = skOverlay; // the key to your question
self.sceneView.overlaySKScene.hidden = NO;
self.sceneView.overlaySKScene.scaleMode = SKSceneScaleModeResizeFill;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接