文章目錄
- 制作物體圖標UI
- 添加獲取武器圖標的方法
- 使用事件分發器,通知UI要換槍
- 定義事件分發器
- 調用事件分發器
- 注冊事件分發器
制作物體圖標UI
在Fpp-UI上添加一個圖片,改名為五weaponIcon,勾選SizeToContent,錨點放在右下角,對齊改為1,1,這樣縮放時會向左上擴張
代碼修改Image的圖片
這里GetIcon是下一步中創建的方法,核心節點是使用Image的引用GunIcon調用SetBrushFromTexture節點
這里出現了GetCurrentGun獲取不到槍的情況,但是在早期編輯時是可以獲取的到的,猜測是編譯后執行順序發生了改變,解決方案是在GameMode里,把生成UI推遲一幀
添加獲取武器圖標的方法
在武器的基類Gun里添加一個純方法GetIcon,返回值為Texture2d的引用
在Rifle里重寫
在launcher里重寫
使用事件分發器,通知UI要換槍
定義事件分發器
只有玩家換槍時才需要更換圖標,所以只改Fppshooter
在Fppshooter左側我的藍圖里最下邊定義一個事件分發器
點擊分發器的名字,不要雙擊進去點圖標,直接在列表里點名字,增加一個輸入參數,類型Texture2D的引用
調用事件分發器
在switchWeapon方法的最后追加調用事件分發器 call Change Gun Dispatcher
注冊事件分發器
打開Fpp_UI藍圖的事件視圖
序列0為舊的獲取玩家引用的方法,最后追加了先獲取一次武器圖標的方法
序列1里為注冊事件分發器
1 玩家的引用,事件分發器需要使用發出事件的對象注冊
2 綁定事件的方法 bind event to Change Gun Dispatcher
3 用來注冊的自定義事件,右鍵輸入custom,選擇添加自定義事件
4 武器圖標的圖片,調用它的設置圖片方法
此時運行游戲,按下Q鍵,切換武器的同時,也可以切換圖標