如何在Scenekit.scene之上创建HUD

Ghi*_*his 10 hud scenekit sprite-kit swift

我正在尝试使用Swift和Scenekit.构建Mac OS X应用程序.让3D场景工作似乎很容易.但是没有某种2D高分,雷达显示,速度指示器等的场景是什么?我希望SpriteKit场景能够无缝集成到SceneView中,但是我没有找到关于这个的文档.

我能想到的最明显和唯一的方法是将SKView放在SceneView上并分别渲染每个.但是有更优雅的方式吗?

Toy*_*yos 9

尝试

scnView.overlaySKScene = aSKScene;

(参见SCNSceneRenderer.h)这是推荐的方法.另一种方法是支持SCNView层并添加子视图或图层(但效率较低).


Jar*_*edH 7

要创建 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;
Run Code Online (Sandbox Code Playgroud)

您可以SKLabelNode在自定义SKContainerOverlay类中创建所有对象。

  • 感谢您提供真实的答案,而不是指向文档或示例应用程序。 (2认同)