七天帶你初探AR世界-Day 3


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
  • 宣告 catSceneChildNodescatScene 的子節點。
  • 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模組囉!

#ARKit #3Dmodel #Day3







你可能感興趣的文章

解題學JavaScript #6 火箭倒數升空

解題學JavaScript #6 火箭倒數升空

匯入小工具 (1) - 談點開始寫程式前的準備

匯入小工具 (1) - 談點開始寫程式前的準備

使用 Python 進行中斷點 step by step debug 除錯

使用 Python 進行中斷點 step by step debug 除錯






留言討論