UE4學習筆記 FPS游戲制作29 更換武器時更換武器的圖標

文章目錄

    • 制作物體圖標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鍵,切換武器的同時,也可以切換圖標

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/899409.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899409.shtml
英文地址,請注明出處:http://en.pswp.cn/news/899409.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringMVC 請求與響應處理詳解

引言 在 Java Web 開發中,SpringMVC 作為 Spring 框架的重要模塊,提供了強大的請求和響應處理機制。本文將深入探討 SpringMVC 中請求和響應的處理方式,結合實際案例,幫助開發者更好地理解和應用這些功能。 一、SpringMVC 請求處…

從零開始的 Kafka 學習(四)| 生產消息

1. 生產消息 1.1 生產消息的基本步驟 (一)創建Map類型的配置對象,根據場景增加相應的配置屬性: 參數名參數作用類型默認值推薦值bootstrap.servers集群地址,格式為:brokerIP1:端口號,brokerIP2:端口號必…

k8s1.22 kubeadm 部署

k8s1.22 kubeadm 部署 1、更改hostname hostnamectl set-hostname master-001 && su root hostnamectl set-hostname node-001 && su root hostnamectl set-hostname node-002 && su root配置hsots cat >> /etc/hosts <<EOF 192.168.20.…

新手村:邏輯回歸-理解04:熵是什么?

新手村&#xff1a;邏輯回歸04&#xff1a;熵是什么? 熵是什么? 前置條件 在開始學習邏輯回歸中的熵理論之前&#xff0c;需要掌握以下基礎知識&#xff1a; 概率論與統計學&#xff1a; 概率分布&#xff08;如伯努利分布、正態分布&#xff09;。條件概率和貝葉斯定理。期…

STM32通用定時器結構框圖

STM32單片機快速入門 通用定時器框圖 TIM9和TIM12 通用定時器框圖 TIM9和TIM12 &#xff08;二&#xff09; 通用定時器框圖

3.28-2 jmeter讀取mysql

jmeter操作mysql 1.下載數據驅動&#xff0c;安裝數據驅動 &#xff08;1&#xff09;存放四個路徑 a.jre下的lib C:\Program Files\Java\jre1.8.0_60\lib &#xff08;2&#xff09;存放在jre 下的lib 中的ext 路徑&#xff1a; C:\Program Files\Java\jre1.8.0_60\lib\…

TDengine 中的保留關鍵詞

簡介 本節很重要&#xff0c;請大家收藏&#xff0c;避免在編寫程序的時候踩坑。因為關鍵字是被 TDengine 系統使用的&#xff0c;如果你在 SQL 中使用了保留關鍵詞&#xff0c;并且沒有被反引號包括時&#xff0c;會報語法錯誤&#xff0c;當你不知道這個是保留關鍵詞時&…

美攝科技開啟智能汽車車內互動及娛樂解決方案2.0

在科技飛速發展的今天&#xff0c;汽車已不再僅僅是簡單的代步工具&#xff0c;而是逐漸演變為集出行、娛樂、社交于一體的智能移動空間。美攝科技&#xff0c;作為前沿視覺技術與人工智能應用的領航者&#xff0c;憑借其卓越的技術實力和創新精神&#xff0c;攜手汽車行業&…

Postman CORS 測試完全指南:輕松模擬跨域請求,排查 CORS 相關問題

在使用 Postman 進行 API 測試時&#xff0c;通常不會遇到跨域問題&#xff0c;因為 Postman 是一個獨立的客戶端應用程序&#xff0c;不同于在瀏覽器中運行的 JavaScript 代碼&#xff0c;它沒有同源策略&#xff08;SOP&#xff09;的限制。跨域資源共享&#xff08;CORS&…

基于SpringBoot和Vue的SQL TO API平臺的設計與實現

文章目錄 前言一、系統功能模塊二、數據庫設計1. 實體屬性圖1. 實體屬性圖1.1 職員表1.2 數據源配置表1.3 接口配置表1.4 請求記錄表 2. E-R圖 三、系統實現1. 登錄頁面2. 職員管理頁面1.1 創建用戶1.2 編輯用戶 2. 數據源管理2.1 創建數據源2.2 編輯數據源 3. 接口管理3.1 創建…

【Portainer】Docker可視化組件安裝

Portainer Portainer 是用于管理容器化環境的一體化平臺工程解決方案&#xff0c;提供廣泛的定制功能&#xff0c;以滿足個人開發人員和企業團隊的需求。 官方地址: https://www.portainer.io/ 安裝 在 WSL / Docker Desktop 上使用 Docker 安裝 Portainer CE 通過命令或UI頁…

Gateway實戰(二)、負載均衡

spring cloud- Gateway實戰二:負載均衡 負載均衡簡單了解一)、實操案例-自動負載均衡二)、實操案例-手動負載均衡1、手動負載均衡方式一2、手動負載均衡方式二負載均衡 簡單了解 我們引入負載均衡,主要是為了 讓網絡流量能均勻的分發到多個服務器上,以此來提高系統性能、…

MATLAB 2024b深度學習,圖神經網絡(GNN)

隨著人工智能技術向多學科交叉融合與工程實踐領域縱深發展&#xff0c;MATLAB 2024b深度學習工具箱通過架構創新與功能強化&#xff0c;為科研創新和行業應用提供了全棧式解決方案。本培訓基于該版本工具鏈的三大革新方向展開&#xff1a;一是構建覆蓋經典模型與前沿架構的體系…

unity中Xcharts圖表鼠標懸浮表現異常

鼠標懸浮在面板附近&#xff0c;只顯示單獨的一個項目 而且無論鼠標如何移動&#xff0c;根本沒有效果。 解決方案&#xff1a; 需要在對應的Canvas上綁定主相機才可以 鼠標移動到項目上就有信息展示了

使用Django創建項目及介紹

注意&#xff1a;創建項目之前先進入虛擬環境 第一步&#xff1a;創建 Django 項目 運行以下命令創建一個名為 myproject 的 Django 項目&#xff1a; django-admin startproject myproject 這會生成一個名為 myproject 的文件夾&#xff0c;結構如下&#xff1a; myproje…

CentOS 安裝LAMP全過程 - 完整步驟與最佳實踐

在開始搭建 LAMP 環境之前&#xff0c;需要確保系統已經滿足以下條件&#xff1a; 1、操作系統&#xff1a;CentOS 7 或 CentOS 8 2、網絡連接&#xff1a;系統必須能夠訪問互聯網以下載所需的軟件包 3、權限&#xff1a;需要 root 權限或者通過sudo 提權執行命令 先更新系…

Java基礎關鍵_031_反射(一)

目 錄 一、概述 二、獲取 Class 的四種方式 1.Class.forName("完整全限定類名") 2.getClass() 3.class 屬性 4.通過類加載器獲取 三、通過反射機制實例化對象 1.newInstance()&#xff08;已過時&#xff09; 2.配置文件利用反射機制實例化對象 四、反射 Cla…

MySQL高級語句深度解析與應用實踐

一、窗口函數&#xff1a;數據分析的利器 1. 窗口函數基礎概念 窗口函數(Window Function)是MySQL 8.0引入的強大特性&#xff0c;它可以在不減少行數的情況下對數據進行聚合計算和分析 SELECT employee_name,department,salary,RANK() OVER (PARTITION BY department ORDER…

【機器學習基礎 4】 Pandas庫

一、Pandas庫簡介 Pandas 是一個開源的 Python 數據分析庫&#xff0c;主要用于數據清洗、處理、探索與分析。其核心數據結構是 Series&#xff08;一維數據&#xff09;和 DataFrame&#xff08;二維表格數據&#xff09;&#xff0c;可以讓我們高效地操作結構化數據。Pandas …

ETCD --- ?租約(Lease)?詳解

一、租約的核心概念 1. ?租約(Lease)? 一個租約是一個有時間限制的“授權”,綁定到鍵值對上。每個租約有一個唯一的ID(64位整數),通過etcdctl或客戶端API創建。創建租約時需指定TTL(Time-To-Live),即租約的有效期(單位:秒)。客戶端需定期向etcd發送續約(KeepAl…