UGUI揹包實現詳解之一UGUI精準拖拽

    UGUI爲開發者提供了許多實現交互的接口,包括拖拽類、點選類、鼠標指針類等,下面是最簡單的UI拖拽實現方式:


    將上邊代碼掛在UI上運行,就可以實現最簡單的拖拽效果。但是這種方式存在問題:鼠標開始點下時會出現UI位置彈跳,鼠標指針出現了位置偏移並不在UI上。

    我們來看一下問題所在:


    藍點爲UI的Pivot軸心點,假設紅點爲鼠標點下位置,由於UI的Position在UI正中位置,但是鼠標開始點下位置總不在UI正中間,所以就導致了UI拖動過程中的位置偏移。而這個偏移量就是上圖綠色箭頭所標記向量。

    現在我們使用另外一種拖拽方式——精準拖拽:


    UGUI爲我們提供了一個類:RectTransformUtility,其中有UI屏幕座標轉換爲世界座標的方式:ScreenPointToWorldPointInRectangle,座標轉換的好處是:


    無論UGUI的Canvas畫布模式是哪一種,以上代碼都適用。

    將此腳本掛在UI上,運行unity,現在UI的精準拖拽就實現了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章