課程重點
點擊事件(自定義按鈕)
拖拽事件(搖桿)
課程知識點
事件:玩家和游戲交互的一種方式
鍵盤
鼠標
手柄
麥克風
重力檢測
觸摸
VR(手柄,眼鏡)
觸發UI事件的三個要素
- Canvas配置射線發射器
- 場景中存在EventSystem組件
- 交互組件Raycast Target開啟(Text組件或Image組件)
自定義點擊實現
由於Unity是組件化開發思想,所以自定義按鈕也是使用組件Script實現
編寫自定義事件步驟
- 引入自定義事件命名空間(UnityEngine.EventSystems)
- 實現自定義事件Interface
- 用戶交互會觸發回調函數
點擊事件接口系列
IPointerEnterHandler:鼠標光標移入射線檢測區域,觸發回調函數
IPointerExitHandler:鼠標光標移出射線檢測區域,觸發回調函數
IPointerDownHandler:鼠標在射線檢測區域中按下,觸發回調函數
IPointerUpHandler
前提:需要先觸發按下事件
情況1:鼠標在射線檢測區域中按下並抬起(正常點擊)
情況2:鼠標在射線檢測區域中按下,移出射線檢測區域后抬起(點擊后取消)
情況3:鼠標在射線檢測區域外按下,再在區域外抬起(按下回調不執行)
情況4:鼠標在射線檢測區域外按下,再在區域內抬起(按下回調不執行)
IPointerClickHandler:鼠標在射線檢測區域中按下並抬起,觸發回調函數,Up的情況2是不會觸發Click事件的
Button點擊事件分析
拖拽事件實現
半透明漸變貼圖在iOS設備下,使用壓縮會造成圖片質量損失,所以可以將半透明
漸變UI切片單獨制作真彩色圖集
拖拽事件組
IBeginDragHandler:檢測到射線后,當拖拽動作開始時執行一次回調函數
IDragHandler:拖拽開始后,有拖拽位置變化時,執行回調函數(每個移動)
IEndDragHandler:拖拽進行中時,當鼠標或手抬起時,執行一次回調函數
如何獲取物體的位置
位置:相對量,需要有參照物體
屏幕坐標:手點擊屏幕時生成
DragArea本地坐標:控制搖桿(DragBar)的位置
需求:如何通過屏幕坐標系下的點,轉換到DragArea本地坐標系下的點
限制搖桿位置