관련 코드는 아래의 복사 나 또한이 상황을 보여 Github에서에 간단한 테스트 프로젝트를 넣어 :GameViewController에서 SKScene (fileNamed :)을 설정할 수없는 이유는 무엇입니까?
https://github.com/prinomen/viewPresentSceneTest
은 내가 GameViewController
과 GameScene
클래스가 있습니다. SKScene(fileNamed: "GameScene")
으로 장면을 설정하려고 시도했지만 장면이 나타나지 않고 그 라인 이후의 print 서술문이 호출되지 않기 때문에 호출이 작동하지 않습니다.
let scene = GameScene()
하지만 SpriteKit을 이해하려고 노력 중이 야 그리고 그것은 아래 코드는 작동하지 않는 날 귀찮게 :
는 나는이 같은 장면을 설정하는 다른 방법을 사용할 수 있습니다 알고 있습니다. 다른 프로젝트에서 아래 코드와 같이 SKScene(fileNamed: "GameScene")
을 사용하여 장면을 성공적으로 설정할 수있었습니다.
누구나이 프로젝트에서 작동하지 않는 이유를 알고 있습니까?
GameViewController.swift
import SpriteKit
class GameViewController: UIViewController {
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
if let view = self.view as! SKView? {
// Load the SKScene from 'GameScene.sks'
if let scene = SKScene(fileNamed: "GameScene") {
print("SKScene was set")
// Set the scale mode fit the window:
scene.scaleMode = .aspectFill
// Size our scene to fit the view exactly:
scene.size = view.bounds.size
// Show the new scene:
view.presentScene(scene)
}
}
}
}
GameScene.swift
import SpriteKit
class GameScene: SKScene {
override func didMove(to view: SKView) {
self.anchorPoint = CGPoint(x: 0.5, y: 0.5)
let logoText = SKLabelNode(fontNamed: "AvenirNext-Heavy")
logoText.text = "Game Scene"
logoText.position = CGPoint(x: 0, y: 100)
logoText.fontSize = 60
self.addChild(logoText)
}
}
canteen의 대답이이 문제를 해결했습니다. 내 프로젝트를 수정하기 위해 새로운 GameScene.sks 파일을 만들었고 Custom Class inspector에서 Custom Class 필드에 GameScene을 입력했습니다. – peacetype