Unity 點擊事件 拖拽事件


課程重點

         點擊事件(自定義按鈕)

         拖拽事件(搖桿)

 

課程知識點

         事件:玩家和游戲交互的一種方式

                   鍵盤

                   鼠標

                   手柄

                   麥克風

                   重力檢測

                   觸摸

                   VR(手柄,眼鏡)

 

         觸發UI事件的三個要素

  1. Canvas配置射線發射器

                       

  1. 場景中存在EventSystem組件

     

  1. 交互組件Raycast Target開啟(Text組件或Image組件

 

         自定義點擊實現

                   由於Unity是組件化開發思想,所以自定義按鈕也是使用組件Script實現

                  

                   編寫自定義事件步驟

  1. 引入自定義事件命名空間(UnityEngine.EventSystems)
  2. 實現自定義事件Interface
  3. 用戶交互會觸發回調函數

 

點擊事件接口系列

         IPointerEnterHandler:鼠標光標移入射線檢測區域,觸發回調函數

IPointerExitHandler:鼠標光標移出射線檢測區域,觸發回調函數

 

IPointerDownHandler:鼠標在射線檢測區域中按下,觸發回調函數

IPointerUpHandler

前提:需要先觸發按下事件

情況1:鼠標在射線檢測區域中按下並抬起(正常點擊)

情況2:鼠標在射線檢測區域中按下,移出射線檢測區域后抬起(點擊后取消)

情況3:鼠標在射線檢測區域外按下,再在區域外抬起(按下回調不執行)

情況4:鼠標在射線檢測區域外按下,再在區域內抬起(按下回調不執行)

 

IPointerClickHandler:鼠標在射線檢測區域中按下並抬起,觸發回調函數,Up的情況2是不會觸發Click事件的

 

Button點擊事件分析

 

         拖拽事件實現

                   半透明漸變貼圖在iOS設備下,使用壓縮會造成圖片質量損失,所以可以將半透明

                   漸變UI切片單獨制作真彩色圖集

 

                   拖拽事件組

                            IBeginDragHandler:檢測到射線后,當拖拽動作開始時執行一次回調函數

IDragHandler:拖拽開始后,有拖拽位置變化時,執行回調函數(每個移動)

IEndDragHandler:拖拽進行中時,當鼠標或手抬起時,執行一次回調函數

                  

                   如何獲取物體的位置

                            位置:相對量,需要有參照物體

                            屏幕坐標:手點擊屏幕時生成

                            DragArea本地坐標:控制搖桿(DragBar)的位置

                          

                            需求:如何通過屏幕坐標系下的點,轉換到DragArea本地坐標系下的點

                           

                            限制搖桿位置

                                    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM