unity中camera攝像頭控制詳解
我們的產品是使用unity開發水利BIM(水利建築資訊模型),專案中需要控制攝像 頭對模型進行360度檢視,請注意所有操作都是移動攝像頭,不是移動模型。攝 像頭能進行移動、旋轉、改變焦距操作,類似於SketchUp的控制操作:
- 攝像頭移動時,根據當前旋轉方向(Rotation)進行移動
- 攝像頭距離模型越遠,攝像頭移動速度越快,距離越近,移動速度越慢
- 攝像頭最初放置在距離模型中心點正前方distance距離(即z軸),攝像頭旋轉方向(Rotaion) 改變後,再根據旋轉方向(Rotation)在z軸移動distance距離;使用者看到的就是模型圍繞自己得中心點進行 360度旋轉
- 攝像頭移動後,比如向左平移了left距離(即x軸),那麼攝像頭旋轉時,攝像 頭旋轉方向(Rotaion),再根據旋轉方向(Rotation)在x軸移動left距離,z軸distance 移動距離;使用者看到的就是模型圍繞旋轉的中心點是:模型中心點向左平移left距離的那個點
- 如果攝像頭移動後,攝像頭在旋轉過程中,移動距離會逐步減小,最終攝像 頭會回到最初位置;使用者看到的就是隨著旋轉,模型回到螢幕中心
這些需求其實挺簡單,本想在網上找到一個現成的例子,但是發現網上關於攝像 頭的資料要麼太簡單,要麼有錯誤,關鍵地方含糊其詞,程式碼也寫得不規範,因 此自己研究了下,把攝像頭這種控制搞清楚了,在這裡分享一下。
這裡使用的unity版本是2018.2.6f1,使用mac系統,編譯環境使用Rider2018.2,但是攝像頭沒有特殊功能,估計unity5以上,windows或mac下都可以適用。