但是網路上分享的片段沒有完全符合我的需求,
所以寫了一份自己的版本。
主要分為2個部份
1如何判斷點擊到物件
2在按住的時間內,讓物件跟著滑鼠移動
1
在判斷點擊的方法和3D空間的作法類似,
在判斷點擊的方法和3D空間的作法類似,
先求出滑鼠在空間上點擊的位置,
再由此位置取得世界坐標系上,
因為2d 座標要轉3d座標會缺少一個維度資訊,
所以要需要另外再給定一個z值。
再由此位置取得世界坐標系上,
因為2d 座標要轉3d座標會缺少一個維度資訊,
所以要需要另外再給定一個z值。
再用ray cast判定是否有撞到物體,
當滑鼠點擊時,開始判斷ray是否有打到物件,
為了加速ray cast的效率,
我們可以為物件分層(layer),這邊是放在Unity的Layer 8。
2
最後在Drag的函式內完成每次更新都會再檢查物體位置,
如果滑鼠不再按著時,即離開函式。
Demo:
當滑鼠點擊時,開始判斷ray是否有打到物件,
為了加速ray cast的效率,
我們可以為物件分層(layer),這邊是放在Unity的Layer 8。
2
最後在Drag的函式內完成每次更新都會再檢查物體位置,
如果滑鼠不再按著時,即離開函式。
Demo:
source code
PS:
1.在chrome,Vivaldi無法直接由檔案檢視結果
2.放到google drive 分享的方法。https://www.youtube.com/watch?v=c431DEshk4U
3.webGL分享同上。只是build時改成選webGL.
沒有留言:
張貼留言