İçeriğe geç

SceneKit ile SCNScene kullanımı

Merhabalar bu yazımda SceneKit ile nasıl bölüm yaratırız ve bu bölüme kamera ekleriz bunun örneğini vereceğim.

SceneKit‘de işlemler artık üç boyuta taşındığı için SpriteKit‘den farklı olarak x,y,z kordinatları üzerinde işlemler gerçekleşmekte. Oluşturacağımız nesnelerin derinliği olduğu için buna göre kamera açıları ve nesne pozisyonları vermemiz gerekir.

İlk SceneKit viewimizi oluşturalım. Bunun için SceneKit içerisinde bulunan SCNScene sınıfı ve SCNView nesnesini kullanmamız gerekir. Daha önceden SpriteKit kullanmışsanız yapı,nesne ve kullanım mantığı aynıdır.

Aşağıdaki yazdığım scene örneğini inleyebilirsiniz.

class GameViewController: UIViewController {
    
    var gameView:SCNView!
    var gameScene:SCNScene!
    var cameraNode:SCNNode!

    override func viewDidLoad() {
        super.viewDidLoad()
        
        sceneSetup()
     
    }
    
    func sceneSetup() {
        
        gameView = self.view as! SCNView
        gameView.allowsCameraControl = true
        gameView.autoenablesDefaultLighting = true
        gameView.backgroundColor = UIColor.gray.withAlphaComponent(0.3)
    
        gameScene = SCNScene()
     
        gameView.scene = gameScene
        gameView.isPlaying = true
        gameView.showsStatistics = true
        
        cameraNode = SCNNode()
        cameraNode.camera = SCNCamera()
        cameraNode.position = SCNVector3.init(0, 0, 7)
        
        gameScene.rootNode.addChildNode(cameraNode)
        
    }


    override var shouldAutorotate: Bool {
        return true
    }
    
    override var prefersStatusBarHidden: Bool {
        return true
    }
    
    override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
        if UIDevice.current.userInterfaceIdiom == .phone {
            return .allButUpsideDown
        } else {
            return .all
        }
    }
    
 
}//

.allowsCameraControl ile parmak hareketlerinizle scene üzerinde kamerayı serbest kontrol etmenize yarar değeri false vererek bu özelliği kapatabilirsiniz.

.autoenablesDefaultLighting default olarak nesnelere ışık ve gölge ekler kendiniz farklı ışık vurguları ekleyebilirsiniz. İlerleyen yazılarımda bu konuya değineceğim.

Kullandığım SCNCamera sınıfı ne işe yaramakta diyecek olursanız. Oyunlarda veya simulatörlerde her zaman bir kamera bulunur ve değişik açılardan oynadığınız karekteri izler veya üstten bakış yapar. Dilediğiniz bakış açısından nesneye veya haritaya bakış ayarlamanızı sağlamaktadır.

 

Kategori:iOSSceneKit

Bu yazı yorumlara kapalı.

Copyright © 2022 Kenan Atmaca