Day 3
在昨天已經在 art.scnassets 檔中加入好3D模組了,那麼今天來教大家如何實現在AR世界裡吧!
首先,我們宣告一個 function 來導入檔案中的模組,並設置模組在AR空間中的位置,那接下來會在下面作說明:
1 func addCat(x: Float = 0, y: Float = -0.3, z: Float = -0.5) {
2 guard let catScene = SCNScene(named: "art.scnassets/models/wolf.obj") else { return }
3 object = SCNNode()
4 let catSceneChildNodes = catScene.rootNode.childNodes
5 for childNode in catSceneChildNodes {
6 object.addChildNode(childNode)
7 }
8 object.position = SCNVector3(x, y, z)
9 object.scale = SCNVector3(0.0005, 0.0005, 0.0005)
10 sceneView.scene.rootNode.addChildNode(object)
}
- 宣告func,並給予位置座標,以下是AR空間改念圖。
- 宣告 catScene 初始化 SCNScene() 導入模組,如果沒有此檔案便會 return 。
- 初始化一個 SCNNode 物件,叫 object 。
- 宣告 catSceneChildNodes 為 catScene 的子節點。
- 用 for...in 跑完 catSceneChildNodes 的節點並加入 object 物件上。
- object.position 以宣告func時的x,y,x為位置。
- object.scale 調整模組比例大小。
- 顯示在 sceneView 上。
當然你必須做一個動作觸發此 func ,還記得在第一天拉的 Button 嗎?就是為了現在準的!
@IBAction func addCatAction(_ sender: Any) {
addCat()
}
各位亦可放在:
override func viewDidLoad() {
addCat()
...
}
此方法會在你已開啟APP就會顯示3D模組囉!