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


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

Day 4

在昨天已經建立也加入好3D模組了,那麼接下來就是加入手勢啦。
這次專案會帶大家學習到三種手勢分別為:

  • UIPanGestureRecognizer
  • UIPinchGestureRecognizer
  • UILongPressGestureRecognizer

那麼今天帶大家來認識UIPanGestureRecognizer,此手勢為水平拖曳手勢,那麼我利用水平拖移的特性左右移動,使模組呈現360度的旋轉如下:

    @objc func didRotate(_ pan: UIPanGestureRecognizer){
        guard let _ = object else { return }
        let translation = pan.translation(in: pan.view)
        var newAngleY = (Float)(translation.x)*(Float)(Double.pi)/180.0
        newAngleY += currentAngleY
        object?.eulerAngles.y = newAngleY
        if pan.state == .ended{
           currentAngleY = newAngleY
        }
    }
  • 首先,先確認 object 是否有值,沒有則 return
  • 抓取手指在螢幕上所移動的距離。
  • currentAngleY 先宣告為 Float = 0.0,並加上原先算出的 newAngleY
  • 並將算好的 newAngleY,指派回 object物件上。
  • 最後動作結束也將 currentAngleY 等於算好的 newAngleY,以便下次旋轉能延續下去原先角度。

並加入 addGesture() 裡:

func addGesture()  {
    let rotate = UIPanGestureRecognizer(target: self, action: #selector(didRotate(_:)))
    sceneView.addGestureRecognizer(rotate)
}

viewDidLoad() :

override func viewDidLoad() {
    addGesture()
    super.viewDidLoad()
    ...
}
#ARKit #3Dmodel #Day4
相信有在接觸資訊方面的人們都對Augmented Reality(AR)不陌生,多少都有聽過,但你是否有想過了解過其中的道理呢?這邊就以Swift語法帶著各位對AR又有更進一步的瞭解,並在七天中一步一步的實作出簡易的AR App吧!






Related Posts

[ 筆記 ] JavaScript - npm 套件管理工具

[ 筆記 ] JavaScript - npm 套件管理工具

《鳥哥 Linux 私房菜:基礎篇》Chapter 02 - 主機規劃與磁碟分割

《鳥哥 Linux 私房菜:基礎篇》Chapter 02 - 主機規劃與磁碟分割

簡易 Regular Expression 入門指南

簡易 Regular Expression 入門指南

七天學會 swift - 基礎篇 Day2

七天學會 swift - 基礎篇 Day2

Day04 - CSS內距、邊框、輪廓與邊界範圍

Day04 - CSS內距、邊框、輪廓與邊界範圍

我的第一堂 - 網路基礎概論

我的第一堂 - 網路基礎概論



Comments