将scenekit和spritekit组合在一个屏幕中
Posted
技术标签:
【中文标题】将scenekit和spritekit组合在一个屏幕中【英文标题】:Combining scenekit and spritekit in a single screen 【发布时间】:2014-12-01 22:57:28 【问题描述】:抱歉,如果这是一个新手问题,我仍在尝试在 Swift 和 SpriteKit / SceneKit 中找到自己的方法。
是否可以将 SpriteKit 和 SceneKit 组合在一个视图中,例如使用 SpriteKit 在屏幕的一部分中渲染地图,同时使用 SceneKit 渲染主 3D 视图?
【问题讨论】:
【参考方案1】:是的,你可以,它在 WWDC 的各种演示中都有展示。
查看SCNSceneRenderer
的overlaySKScene
属性。
【讨论】:
我在某个地方(可能是 WWDC)听说反过来——在 SpriteKit 之上绘制 SceneKit——应该是可能的,但还没有找到一些确凿的事实。有什么线索吗?【参考方案2】:在SceneKit
中使用SpriteKit
的一种方式如下:
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;
【讨论】:
以上是关于将scenekit和spritekit组合在一个屏幕中的主要内容,如果未能解决你的问题,请参考以下文章
iPhone X 上 SceneKit + SpriteKit 叠加的像素格式错误
SpriteKit 和 SceneKit – 如何完全暂停游戏?
将纯 Metal-API 与 SceneKit 或 SpriteKit 一起使用
SpriteKit和SceneKit - 如何完全暂停游戏?