開發手札:UnrealEngine編輯器開發

??????以前在unity框架中開發了非常多實用且高頻使用的編輯器工具,現在準備把目前用得上工具移植到ue4中。
下面說明一下ue4開發編輯器工具的流程。
1.創建編輯器工具控件
在這里插入圖片描述
2.在控件中創建一個Button和一個EditableText,用于測試
在這里插入圖片描述
3.新建一個繼承UEditorUtilityWidget的類MyEditorUtilityWidget
在這里插入圖片描述
在這里插入圖片描述
4.開始編寫代碼控制Button和EditableText

// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"
#include "EditorUtilityWidget.h"
#include "Runtime/UMG/Public/UMG.h"
#include "MyEditorUtilityWidget.generated.h"/****/
UCLASS()
class MYUNREALCLRDEMO2_API UMyEditorUtilityWidget : public UEditorUtilityWidget
{GENERATED_BODY()public:UPROPERTY(meta = (BindWidget))UButton* Button_Log;UPROPERTY(meta = (BindWidget))UEditableText* EditableText_Log;virtual void NativeConstruct() override;private:UFUNCTION()void ButtonLogClick();
};
// Fill out your copyright notice in the Description page of Project Settings.#include "MyEditorUtilityWidget.h"void UMyEditorUtilityWidget::NativeConstruct()
{Super::NativeConstruct();if (Button_Log != nullptr){Button_Log->OnClicked.AddDynamic(this, &UMyEditorUtilityWidget::ButtonLogClick);}
}void UMyEditorUtilityWidget::ButtonLogClick()
{if (EditableText_Log != nullptr){EditableText_Log->SetText(FText::FromString(FString::Printf(TEXT("測試Editor開發"))));}
}

??????PS:只是簡單示例一下怎么運行,所以單純點一下按鈕打印一句文字
5.在編輯器工具控件中重置父類為自定義的MyEditorUtilityWidget
在這里插入圖片描述

??????這一步很坑爹,我剛開始死活找不到MyEditorUtilityWidget選項,后面直接創建MyEditorUtilityWidget的藍圖類MyEUWBlueprint后,選項就出現了,這不純搞笑呢?c++類還不能直接繼承了…
6.右鍵選擇運行編輯器工具控件,則打開了編輯器窗口
在這里插入圖片描述

??????7.最終可得運行效果
在這里插入圖片描述

??????最后,移植功能最方便的還是AI翻譯,足以完成70%移植工作量

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

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

相關文章

EXCEL開發之路(一)公式解析—仙盟創夢IDE

Excel 數據校驗:基于自定義格式的深度解析與開發實現引言在數據處理和管理領域,Excel 是一款廣泛應用的工具。確保 Excel 中數據的準確性和完整性至關重要,而數據校驗是達成這一目標的關鍵手段。本文將借助特定的代碼示例,深入探討…

Day14——JavaScript 核心知識全解析:變量、類型與操作符深度探秘

接續上文:《前端小白進階 Day13:JavaScript 基礎語法 交互技巧 知識圖譜,零基礎也能懂》-CSDN博客 點關注不迷路喲。你的點贊、收藏,一鍵三連,是我持續更新的動力喲!!! 主頁:一位…

anaconda本身有一個python環境(base),想用別的環境就是用anaconda命令行往anaconda里創建虛擬環境

差不多是這個意思,但需要稍微澄清一下:Anaconda 可以管理任意版本的 Python你安裝了 Anaconda 后,默認有一個 base 環境自帶的 Python。如果你想用其他版本,比如 Python 3.9、3.10,可以用 conda create -n py39 python…

畢業項目推薦:28-基于yolov8/yolov5/yolo11的電塔危險物品檢測識別系統(Python+卷積神經網絡)

文章目錄 項目介紹大全(可點擊查看,不定時更新中)概要一、整體資源介紹技術要點功能展示:功能1 支持單張圖片識別功能2 支持遍歷文件夾識別功能3 支持識別視頻文件功能4 支持攝像頭識別功能5 支持結果文件導出(xls格式…

字庫原理 GB2312-80

這篇文章介紹的是 在嵌入式開發中 常常會遇見的 中文字體點陣字庫(如漢字庫) 的核心編碼原理:區位碼 偏移計算 內存映射。我們將會介紹 GB2312-80 字庫的工作機制。 📘什么是 GB2312-80? GB2312-80 是中國國家標準定…

【Golang】 項目啟動方法

Go 項目啟動方法 1. 常見啟動方式 使用 go run 命令 # 運行主程序文件 go run main.go# 運行多個文件 go run *.go# 運行整個模塊(Go 1.11) go run .# 運行指定包 go run github.com/yourusername/yourproject先構建再執行 # 構建可執行文件 go build# 運…

3459. 最長 V 形對角線段的長度

Problem: 3459. 最長 V 形對角線段的長度 文章目錄思路解題過程復雜度Code思路 深度優先搜索 記憶數組 解題過程 主函數和先遍歷從每一個1開始搜索,并枚舉每一個方向進入dfs,dfs先檢查是否遍歷過,然后枚舉下一個可以走的方向,最后…

Unity 串口通信

可以通過計算機管理->設備管理器,查看端口串口通訊,通常是指的通過計算機或其他設備上的串行端口實現數據傳輸的過程。 定義與特點:串口通訊是按位(bit)發送和接收字節的通信方式,它將數據一位一位地順序…

ArcGIS JSAPI 高級教程 - 創建漸變色材質的自定義幾何體

ArcGIS JSAPI 高級教程 - 創建漸變色材質的自定義幾何體核心代碼完整代碼在線示例工作中遇到一個比較復雜的功能,其中用到漸變色,于是研究了一下,發現雖然 JS API 不直接支持漸變色,但是也可以自定義創建漸變色,通過 M…

不增加 GPU,首 Token 延遲下降 50%|LLM 服務負載均衡的新實踐

作者:鈺誠 簡介 傳統的負載均衡算法主要設計用于通用的 Web 服務或微服務架構中,其目標是通過最小化響應時間、最大化吞吐量或保持服務器負載平衡來提高系統的整體效率,常見的負載均衡算法有輪詢、隨機、最小請求數、一致性哈希等。然而&am…

《Linux內存管理:實驗驅動的深度探索》【附錄】【實驗環境搭建 7】【使用buildroot方式構建文件系統】

1. 使用Buildroot 構建的優勢 使用 Buildroot 構建 rootfs 的優點在于 快速、簡潔、可裁剪、可重復,特別適合 中小型嵌入式 Linux 項目(如車機、路由器、工業控制設備、IoT 網關)。它幫助開發者避免繁瑣的手動編譯和集成工作,專注…

一洽客服系統:網頁咨詢入口設置

一洽客服系統提供了靈活的網頁咨詢入口設置,旨在為用戶提供多樣化的咨詢類別選擇,并根據用戶的需求接入指定的路由線路。以下是該功能的詳細說明:一、網頁咨詢入口設置針對用戶的不同業務提供不同的咨詢類別選擇,用戶選擇業務后接…

Apache Flink錯誤處理實戰手冊:2年生產環境調試經驗總結

作者:_Naci Simsek 前言 在流處理領域,Apache Flink 已經成為企業級實時數據處理的首選框架。然而,在生產環境中,開發者和運維人員經常會遇到各種看似神秘的問題。基于過去兩年中大量客戶在真實場景中的使用案例,可以觀…

嵌入式開發學習 C++:day01

C概述 C誕生 1972年前后,計算機先驅丹尼斯里奇開始設計C語言并用它來重寫Unix系統,里奇的這個決定催生了計算機領域最石破天驚的兩門重炮:Unix和C,這兩者都是IT產業中鼻祖級的存在,Unix是現代蘋果系統和Linux系統的最初來源&#…

LeaferJS創建支持縮放、平移的畫布,并繪制簡單圖形

文章目錄介紹原生JS使用LeaferJS的簡單示例原生JS使用LeaferJS并支持縮放平移畫布Vue中使用LeaferJS并支持縮放平移介紹 LeaferJS官網:https://www.leaferjs.com/ 官方快速上手的教程地址:https://www.leaferjs.com/ui/guide/install/ui/start.html 原…

JumpServer 堡壘機部署與 SSH 公鑰接入服務器教程

前言:在企業運維場景中,服務器的安全訪問與操作管控至關重要。JumpServer 作為開源堡壘機的典型代表,憑借集中管控、權限精細分配、操作全鏈路審計等核心能力,成為保障運維安全合規的關鍵工具。 無論是中小企業簡化運維權限管理&a…

TensorFlow 面試題及詳細答案 120道(21-30)-- 模型構建與神經網絡

《前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,SQL,Linux… 。 前后端面試題-專欄總目錄 文章目錄 一、本文面試題目錄 21. TensorFlow中構建神經…

Qt圖片上傳系統的設計與實現:從客戶端到服務器的完整方案

文章目錄系統架構概覽核心組件解析1. ImageUploadWorker:上傳任務的執行者關鍵方法解析2. ImageUploadManager:線程的"指揮官"3. ImageUploader:網絡通信的"信使"4. 服務器端:圖片的"收納箱"關鍵技…

MySQL InnoDB vs MyISAM

MySQL 兩種引擎(InnoDB vs MyISAM)核心區別事務與鎖機制??特性??InnoDB??MyISAM??事務支持?支持 ACID 事務(原子性、一致性、隔離性、持久性),適用于需強數據一致性的場景(如金融交易)…

軟件定義汽車(SDV)調試——如何做到 適配軟件定義汽車(SDV)?(上)

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 做到欲望極簡,了解自己的真實欲望,不受外在潮流的影響,不盲從,不跟風。把自己的精力全部用在自己。一是去掉多余,凡事找規律,基礎是誠信;二是…