Paulina
Paulina

Reputation: 11

How to scale SCNScene?

I'm displaying USDZ model in AR with this code:

class ViewController: UIViewController {

@IBOutlet var sceneView: ARSCNView!

override func viewDidLoad() {
    super.viewDidLoad()

    sceneView.autoenablesDefaultLighting = true
    sceneView.scene = SCNScene(named: "art.scnassets/model.usdz")!
    sceneView.session.run(ARWorldTrackingConfiguration())
}

But the model is way too big. How can I scale it?

Upvotes: 1

Views: 545

Answers (1)

Andy Jazz
Andy Jazz

Reputation: 58563

Try this:

override func viewDidLoad() {
    super.viewDidLoad()
    
    let sceneView = self.view as! SCNView

    let scene = SCNScene()
    sceneView.scene = scene
    sceneView.backgroundColor = .darkGray
    sceneView.allowsCameraControl = true
    sceneView.autoenablesDefaultLighting = true
    
    // Fighter
    let fighterScene = SCNScene(named: "art.scnassets/ship.scn")!
    
    let fighterNode = fighterScene.rootNode.childNode(withName: "fighter", 
                                                   recursively: true)
    
    fighterNode?.scale = SCNVector3(0.3, 0.3, 0.3)
    
    scene.rootNode.addChildNode(fighterNode!)

    // ...
}

enter image description here

enter image description here

Upvotes: 0

Related Questions