UNITY事件系統支援許多事件,並且有內建的Component可以執行對應的操作,當然也可以透過繼承 interface的方式自定義編寫Script,本篇會介紹這兩種方式的用法。
Event Trigger
事件觸發器從事件系統接收事件並調用已添加的函數和對應的行為,一個事件可以對應多個行為函式,如前篇所說要能被射線啟動到,除了EventTrigger本身以外還要有能與射線產生反應的碰撞器材可以。
- 首先,對要產生行為的物件添加EventTrigger。
- 如果以本身就帶有碰撞器的3D Object來說結構就像這樣。
- 按下Add New Event Type就可以添加事件的類型。
- 以添加PointerEnter為例,按下+號後將要操控的物件置入。
- 方法清單內內建的功能就是物件上所有的Component帶有的公開變數、方法,我們可以用name更改物件的名子,因此當滑鼠指到這個方塊,它的名子就會變成我們打上去字串了。
Supported Events
支援的方法如果要用程式撰寫,要用繼承介面(紅字)然後實作的方式進行,不自行撰寫行為下表也可以作為參考。
- IPointerEnterHandler
OnPointerEnter – 當指標進入對象時調用 - IPointerExitHandler
OnPointerExit – 當指標退出對象時調用 - IPointerDownHandler
OnPointerDown – 在對像上按下指標時調用 - IPointerUpHandler
OnPointerUp – 當指標點下後被釋放時調用 - IPointerClickHandler
OnPointerClick – 當一個指標被按下並釋放在同一個對像上時調用 - IInitializePotentialDragHandler
OnInitializePotentialDrag – 拖動目標時調用 - IBeginDragHandler
OnBeginDrag – 開始拖動時調用 - IDragHandler
OnDrag – 拖動中調用 - IEndDragHandler
OnEndDrag – 拖動完成時調用 - IDropHandler
OnDrop – 拖動結束時調用 - IScrollHandler
OnScroll – 滑鼠滾輪滾動時調用 - IUpdateSelectedHandler
OnUpdateSelected – 當對像被選中持續觸發 - ISelectHandler
OnSelect – 成為選定對象時調用 - IDeselectHandler
OnDeselect – 所選對像變為取消選擇 - IMoveHandler
OnMove – 移動事件發生時調用 - ISubmitHandler
OnSubmit – 按下提交按鈕時調用 - ICancelHandler
OnCancel – 按下取消按鈕時調用
感激不盡!
終於找到方法了
不過中間遇到bug
忘記在maincamera加上
Raycasters
提醒作者這邊可以特別註記