純藍圖中的事件分發機制
1, 在要分發事件的地方創建一個事件調度器(Event Dispacther)並命個名,例如:就在主角Pawn的藍圖中創建一個事件調度器就叫MyEventDispatcher,當主角血量發生變更時就播放。如果需要在廣播事件的時候帶參數就在該事件調度器的Details面板Inputs屬性項里邊點加號‘+’,來添加要攜帶的參數。因為要播放血量變動,肯定要帶一個血量integer類型的參數了。
2, 在需要接收的地方Bind 這個事件調度器。例如:一個UI藍圖(User Widget)中需要實時顯示血量,就要訂閱這個事件調度器廣播了,也就是Bind這個Event Dispacher。具體的步驟就是a,Get Player Pawn b,Cast to 正真的Pawn,c,Bind MyEventDispatcher,然后從event引腳拖出輸入線創建自己的事件(其實就是把自己定義的事件綁到這個事件調度器上,讓事件調度器廣播驅動自定義的事件),為啥要從event引腳拖出輸入線來創建自己的事件呢,主要是為了創建匹配這個事件調度器要廣播事件形式,比如這個事件是要帶參數的,單獨Add Custom Event是不帶參數的,那樣拖出來創建的話就能直接創建一個參數匹配的事件了。還有一種更方便方法是,Cast to 正真的Pawn后直接Assign MyEventDispatcher,這樣綁定+創建自定義事件一步搞定。
3, 綁定后就可以在自定義的事件中干自己的事了。