SwiftUI + SpriteKit でスプライト表示

iOS

SwiftUI と SPriteKit を組み合わせる方法です。

だたし、iOS 13以降でのみ動作します。

どうせならもう古い UIViewController とはおさらばしたいですしね。

以下のように、とりあえず黄色い四角のスプライトを表示します。

ContentView.swift

import SwiftUI
import SpriteKit

struct ContentView: UIViewRepresentable {
    class Coordinator: NSObject {
        var scene: SKScene?
    }
    
    func makeCoordinator() -> Coordinator {
        return Coordinator()
    }
    
    func makeUIView(context: Context) -> SKView {
        let skView = SKView()
        skView.showsFPS = true
        skView.showsNodeCount = true
        
        let scene = SKScene()
        scene.anchorPoint = CGPoint(x: 0.5, y: 0.5)
        
        let spriteNode = SKSpriteNode(color: .yellow,
                                      size: CGSize(width: 50,
                                                   height: 50))
        spriteNode.position = CGPoint(x: 0,
                                      y: 0)
        
        scene.addChild(spriteNode)
        scene.scaleMode = .resizeFill
        
        context.coordinator.scene = scene
        
        return skView
    }
    
    func updateUIView(_ view: SKView, context: Context) {
        view.presentScene(context.coordinator.scene)
    }
}

コメント

タイトルとURLをコピーしました