##Event System
新建Canvas話不是,系統自動生成的Event System裏面主要有兩個Components,分別是Event System和Standalone Input Module。
*EventSystem負責管理,BaseInputModule負責輸入,BaseRaycaster負責確定目標對象。
###1. EventSystem
負責處理輸入、射線投射以及發送事件
一個場景中只能有一個EventSystem,否則EventSystem會失效
###2. BaseInputModule
負責處理輸入(點擊、拖拽等),把輸入事件發送到具體的對象。
*可以自己繼承BaseInputModule來實現自己的交互方式。
- Standalone Input Module:基本的鍵盤和鼠標輸入系統,並跟蹤鼠標的位置,以及鼠標/鍵盤所按下的按鍵。
- Touch Input Module:基本的觸摸輸入系統,用於處理觸摸、拖拽以及位置數據,並可在其實現中模擬鼠標行爲。
- Pointer Input Module:提供上面兩者的基本功能,同時還可以通過代碼進行訪問。
###BaseRaycaster
Unity中射線檢測的基類,負責確定目標對象,此類系統均依賴於Event Camera,並用作全部光線投射的源。
*可以自己繼承BaseRaycaster來創建自己的光線投射系統。
- 在UI中:GraphicRaycaster
- 非UI中:Physics Raycaster 和 Physics 2D Raycaster
###UI事件工作流
BaseInputModule接收用戶的輸入
BaseRaycaster根據用戶的輸入,找到目標物體
根據用戶的輸入事件,調用目標物體上的對應接口實現。
內部工作機制
EventSystem把其GameObject上的所有BaseInputModule放到一個內部