将 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];
}
我觉得一个办法是:
- 在 build phases library
中添加 Scenekit framework
- 创建一个名为 SCNView
的单独 class
- 在方法 -awakeFromNib {}
中配置场景和设置节点
- 在你的 starViewController
中导入 Scenekit/Scenekit.h
- 在你的故事板中检查你的自定义class你的场景工具包视图必须被命名为class你在步骤 2
- 现在可以通过 allocating 和 starViewController
中的 init 方法轻松调用场景套件 class
- 享受 Scenekit :)
从我在 Interface Builder 屏幕截图上看到的,SCNView
似乎实际上是控制器视图的子视图,而不是控制器视图本身。你的代码会崩溃吗? (这将确认 self.view
不是 SCNView
而是简单的 UIView
)。
您可能希望将 SCNView
作为控制器的视图,或者创建一个 IBOutlet
以便您可以从视图控制器检索和操作 SceneKit 视图。
这是我第一次将 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];
}
我觉得一个办法是:
- 在 build phases library 中添加 Scenekit framework
- 创建一个名为 SCNView 的单独 class
- 在方法 -awakeFromNib {} 中配置场景和设置节点
- 在你的 starViewController 中导入 Scenekit/Scenekit.h
- 在你的故事板中检查你的自定义class你的场景工具包视图必须被命名为class你在步骤 2
- 现在可以通过 allocating 和 starViewController 中的 init 方法轻松调用场景套件 class
- 享受 Scenekit :)
从我在 Interface Builder 屏幕截图上看到的,SCNView
似乎实际上是控制器视图的子视图,而不是控制器视图本身。你的代码会崩溃吗? (这将确认 self.view
不是 SCNView
而是简单的 UIView
)。
您可能希望将 SCNView
作为控制器的视图,或者创建一个 IBOutlet
以便您可以从视图控制器检索和操作 SceneKit 视图。