加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – SpriteKit – didMovetoView未被调用

发布时间:2020-12-14 19:29:24 所属栏目:百科 来源:网络整理
导读:这是我的视图控制器代码 import UIKitimport SpriteKitimport GameplayKitclass GameViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() if let view = self.view as! SKView? { // Load the SKScene from 'GameScene.s
这是我的视图控制器代码

import UIKit
import SpriteKit
import GameplayKit
class GameViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

    if let view = self.view as! SKView? {
        // Load the SKScene from 'GameScene.sks'
        if let scene = SKScene(fileNamed: "GameScene") {
            // Set the scale mode to scale to fit the window
            scene.scaleMode = .aspectFill
            // Present the scene
            view.presentScene(scene)
        }

        view.ignoresSiblingOrder = true

        view.showsFPS = true
        view.showsNodeCount = true
    }
}

这是我的GameScene代码

import SpriteKit
import GameplayKit

    class GameScene: SKScene {
       override func didMove(to view: SKView) {
            print("gets called")
        }

但由于某些原因,在调试区域,它没有打印“被调用”,这表明didMove甚至没有被调用.这里发生了什么事?我错过了什么吗?

解决方法

iOS 9的方式

在你的GameViewController中尝试直接呈现你的GameScene而不是通用的SKScene.

if let scene = GameScene(fileNamed: "GameScene") { 
...

请记住,“fileNamed”不是.swift文件的名称,它是用于xCode级别编辑器的.sks文件的名称.

新的iOS 10方式

苹果现在似乎更愿意通过一个通用的SKScene,就像你正在尝试的那样.

if let scene = SKScene(fileNamed: "GameScene") { ... }

要使其工作,请转到相关的.sks文件并转到右侧的检查器.单击第二个最后一项(自定义类),然后在自定义类字段中输入.swift文件的名称.

希望这可以帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读