ios – 覆盖SKScene没有显示

ios – 覆盖SKScene没有显示,第1张

概述我正试图在SCNScene上叠加SKScene.当我在模拟器和iPhone6上运行我的应用程序时,overlayScene(SKScene)显示为预期,但是当我尝试在iPhone5上运行它(尝试了2个不同的设备)时,overlayScene不会出现. 有谁知道为什么?两个设备都在iOS 9.2.1上运行.我只测试了这两个型号的应用程序.这是我在GameViewController.Swift中的代 我正试图在SCNScene上叠加SKScene.当我在模拟器和iPhone6上运行我的应用程序时,overlayScene(SKScene)显示为预期,但是当我尝试在iPhone5上运行它(尝试了2个不同的设备)时,overlayScene不会出现.

有谁知道为什么?两个设备都在iOS 9.2.1上运行.我只测试了这两个型号的应用程序.这是我在GameVIEwController.Swift中的代码

//Configure the vIEw    sceneVIEw = self.vIEw as? SCNVIEw    //Configure the scene    sceneVIEw.scene = gameScene    sceneVIEw.playing = true    sceneVIEw.backgroundcolor = UIcolor.blackcolor()    sceneVIEw.antialiasingMode = SCNAntialiasingMode.Multisampling4X    let overlayScene = OverlayScene(size: self.vIEw.bounds.size)    sceneVIEw.overlaySKScene = overlayScene

谢谢!

解决方法 我从@StephenT上面提到的开发人员论坛得到了这个解决方案,但我认为一些代码可能有所帮助.

在Xcode提供的库存/模板代码中,Storyboard将顶级视图指定为SKVIEw,并且应通过SCNVIEw对象将初始SCNScene添加到该视图中.这意味着当我向SCNScene添加SKVIEw时,我遇到了一个问题,即SKVIEw不会在任何使用OpenGL的设备上显示(而不是Metal).

所以对我有用的解决方案是:

Main.storyboard – > VIEwController – >视图

应设置为SCNVIEw,而不是SKVIEw.

然后,在VIEwController中:

- (voID) vIEwDIDLoad {    [super vIEwDIDLoad];    // Configure the root vIEw.    //    SCNVIEw *scnVIEw = (SCNVIEw*)self.vIEw;    WorldSceneVIEw *world = [[WorldSceneVIEw alloc] initWithFrame:self.vIEw.frame];    // Create and configure the scene.    //    HUDScene *hudScene = [HUDScene hudSceneWithSize:scnVIEw.bounds.size andHUDDelegate:world];    // Associate the HUD SKScene with the SCNVIEw.    //        world.overlaySKScene = hudScene;    [scnVIEw addSubvIEw:world];}

这适用于我,在Metal和OpenGL设备以及模拟器上.

总结

以上是内存溢出为你收集整理的ios – 覆盖SKScene没有显示全部内容,希望文章能够帮你解决ios – 覆盖SKScene没有显示所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1003695.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存