将 SceneKit 场景文件添加到视图控制器

add SceneKit Scene file to view controller

这是我第一次将 SceneKit 添加到我的应用程序中, 我创建了一个名为 "StarScene.scn" 的 SceneKit 文件,我想将它显示到我的 StarViewController 中,它不起作用,我只是不知道如何让它正确。请帮忙。下面的编码和屏幕截图。非常感谢。

- (void)viewDidLoad
{

    [super viewDidLoad];

    SCNView *myView = (SCNView *)self.view;
    myView.scene = [SCNScene sceneNamed:@"StarScene.scn"];
    myView.allowsCameraControl = YES;
    myView.autoenablesDefaultLighting = YES;
    myView.backgroundColor = [UIColor lightGrayColor];

}

我觉得一个办法是:

  1. build phases library
  2. 中添加 Scenekit framework
  3. 创建一个名为 SCNView
  4. 的单独 class
  5. 在方法 -awakeFromNib {}
  6. 中配置场景和设置节点
  7. 在你的 starViewController
  8. 中导入 Scenekit/Scenekit.h
  9. 在你的故事板中检查你的自定义class你的场景工具包视图必须被命名为class你在步骤 2
  10. 现在可以通过 allocating 和 starViewController
  11. 中的 init 方法轻松调用场景套件 class
  12. 享受 Scenekit :)

从我在 Interface Builder 屏幕截图上看到的,SCNView 似乎实际上是控制器视图的子视图,而不是控制器视图本身。你的代码会崩溃吗? (这将确认 self.view 不是 SCNView 而是简单的 UIView)。

您可能希望将 SCNView 作为控制器的视图,或者创建一个 IBOutlet 以便您可以从视图控制器检索和操作 SceneKit 视图。