ugui拖拽應用

2021-08-04 16:38:50 字數 773 閱讀 4167

新增eventtrigger元件

只要繼承了ibegindraghandler、idraghandler、和ienddraghandler這三個介面,

並實現了onbegindrag、ondrag和onenddrag這三個方法,我們就可以實現拖拽功能。

其中,onbegindrag處理開始拖動時要做什麼事,

ondrag

處理拖動過程中要做什麼事,

onenddrag

處理拖動結束時要做什麼事

另外ondrop方法中,需要監聽的gameobject層級比被拖拽的層級高,即在hierarchy介面中的更下一層。

實際使用中,倉庫和揹包兩個介面都需要互相拖拽,用ondrop無法實現,於是換個思路,通過座標計算,原先用於放置的物體只需要recttransform屬性即可。

然後換算座標,監測處於其中或是放置其中。

資料:

說到拖拽,那必然離不開座標,ugui 的座標有點不一樣,它有兩種座標,一種是螢幕座標,還有一種就是 ui 在canvas內的座標(暫時叫做ugui座標。。。),這兩個座標是不一樣的,所以拖拽是就需要轉換。因為滑鼠的移動是螢幕座標,而 ui 的移動是ugui座標。轉換的方法:

recttransformutility.screenpointtolocalpointinrectangle

實際開發中用

--自定義方法,判斷點是否在矩形中:

unityengine.recttransformutility.rectanglecontainsscreenpoint

storage事件的拖拽應用

實現在兩個頁面中的方塊拖拽其中一塊另乙個方塊的移動 乙個方塊移動產生的實時的定位值放到本地儲存中,另乙個方塊獲取本地儲存的值,作為自己的定位 html1中 var obox document.queryselector box 初始值 紅色的最後存的位置 var pos json.parse loc...

UGUI基本控制項

text控制項 我們在hierarchy介面下,單擊右鍵我們可以找到ui的選項,選擇text元件,或者在component欄下也可以找到ui,選擇text元件。這時,我們將會看到下面的內容 canvas在前面已經有介紹了。text就是我們建立的元件用來顯示文字,eventsystem是事件系統,它的...

UGUI事件機制

ugui使用了新的event機制,我們之前在ngui中,為了處理ui的互動,通常是在ui元件掛載的mono上寫onclick onpress 這些函式,換到ugui後,unity使用了新的event 機制。但是unity的文件解釋的很亂,這裡整理一下。這裡面有個主要的模組 eventsystem,全...