UIKit 앱에 SpriteKit의 view를 꽂아 파티클을 내 보았습니다 (Swift3)
우선 SingleViewApplication에서 프로젝트를 만듭니다.
스토리보드에서 ViewController의 원래 View에 새 View를 올립니다.
추가한 view 클래스를 SKView로 설정
추가 된 뷰의 배경을 검은 색으로 설정하여 입자를 쉽게 볼 수 있습니다.
storyboard에서 추가한 SKView를 ViewController.swift와 연결합니다(skView라는 이름으로 지정).
연결 완료
SKScene swift 파일 만들기
만든 SKScene 파일에 이런 코드를 씁니다.
import SpriteKit
class TestSKScene : SKScene {
override func didMove(to view: SKView) {
self.backgroundColor = SKColor.clear // これ落とし穴!やらないとモヤがかかったみたいになる
self.scaleMode = .resizeFill // これを入れないとiPadで表示した時にパーティクルが小さく表示されてしまう
emitParticle()
}
func emitParticle() {
// パーティクルファイルのパスを指定
guard let testParticlePath = Bundle.main.path(forResource: "testParticle", ofType: "sks") else {
return
}
// パーティクルを作って載せる
let testParticle = NSKeyedUnarchiver.unarchiveObject(withFile: testParticlePath) as! SKEmitterNode
testParticle.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
self.addChild(testParticle)
}
}
아직 파티클 파일은 만들지 않았지만 이름은 testParticle.sks로 만들 예정입니다.
SpriteKit 파티클 파일 만들기
※SceneKit의 파티클을 선택하지 않도록 조심해
타입은 여러 가지 있습니다만, 우선 Rain을 선택했습니다
값을 조정하지 않으면 이런 느낌
값을 변경하여 원하는 이미지로 조정합시다.
이제 SKScene에 파티클이 올라서 처음 만든 ViewController에 올린 SKView에 SKScene을 올립니다.
override func viewWillAppear(_ animated: Bool) {
let scene = TestSKScene(size: skView.bounds.size)
skView.presentScene(scene)
}
빌드합시다.
네 완성♪
함정이 하나만
TestSKScene.swift 파일에 주석으로 썼는데,
self.backgroundColor = SKColor.clear
이것을 넣지 않으면 파티클 위에 모야가 걸린 것 같습니다. 이만큼 빠졌습니다.이것이 가능하면 장면 위에 SKSpriteNode를 싣는 것도 가능하고, SpriteKit의 파워 살리기 무제한군요.
Reference
이 문제에 관하여(UIKit 앱에 SpriteKit의 view를 꽂아 파티클을 내 보았습니다 (Swift3)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ika_tarou/items/b3458fea814fd379bb85텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)