我尝试使用Swift和Scenekit。 构建Mac OS X应用程序。 让3D场景工作似乎很容易。 但是没有某种2D高分,雷达显示,速度指示器等的场景是什么? 我希望SpriteKit场景可以无缝集成到SceneView中,但是我没有找到关于此的文档。
我能想到的最明显也是唯一的方法是将SKView放在SceneView上并分别渲染每个。 但是有更优雅的方式吗?
答案 0 :(得分:8)
试
scnView.overlaySKScene = aSKScene;
(参见SCNSceneRenderer.h) 这是推荐的方式。另一种方法是支持SCNView层并添加子视图或图层(但效率较低)。
答案 1 :(得分:4)
要创建HUD,请执行以下操作:
// SKContainerOverlay is a class which inherits from SKScene
SKContainerOverlay *skContainerOverlay = [[SKContainerOverlay alloc] initWithSize:self.sceneView.bounds.size];
self.sceneView.overlaySKScene = skContainerOverlay;
self.sceneView.overlaySKScene.hidden = NO;
self.sceneView.overlaySKScene.scaleMode = SKSceneScaleModeResizeFill; // Make sure SKScene bounds are the same as our SCNScene
self.sceneView.overlaySKScene.userInteractionEnabled = YES;
您可以在自定义SKLabelNode
课程中创建所有SKContainerOverlay
个对象。
答案 2 :(得分:2)
正如@Toyos上面所说,你可以使用
scnView.overlaySKScene = aSKScene
在您的SCNView上添加SKScene。
但是,当我在Swift中尝试此操作时,我发现overlaySKScene
属性只有在包含import SpriteKit
语句时才会显示。
答案 3 :(得分:0)
@Toyos回答说,使用scnView.overlaySKScene
一天很简单。如果您想要一个示例,您可以查看Apple如何在Bananas demo中执行此操作。