国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

UE5.1編輯器拓展【一、腳本化資產(chǎn)行為,通知,彈窗,高效復制多個同樣的資產(chǎn)】

這篇具有很好參考價值的文章主要介紹了UE5.1編輯器拓展【一、腳本化資產(chǎn)行為,通知,彈窗,高效復制多個同樣的資產(chǎn)】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄???????

插件制作

添加新的類:AssetActionUtility

添加新的模塊:EditorScriptingUtilities

路徑了解

添加debug的頭文件

代碼【debug.h】內(nèi)涵注釋:

寫函數(shù)

.h文件

.cpp文件


插件制作

首先第一步是做一個插件:

UE5.1編輯器拓展【一、腳本化資產(chǎn)行為,通知,彈窗,高效復制多個同樣的資產(chǎn)】,# UE4/5編輯器,ue4,ue5,編輯器,c++,c#,虛幻引擎,虛幻

因為是用于編輯器的,所以在模塊中我們需要進行更改:

將類型改為Editor,下方的加載則是在默認之前:PreDefault.

UE5.1編輯器拓展【一、腳本化資產(chǎn)行為,通知,彈窗,高效復制多個同樣的資產(chǎn)】,# UE4/5編輯器,ue4,ue5,編輯器,c++,c#,虛幻引擎,虛幻

添加新的類:AssetActionUtility

AssetActionUtility可以用于創(chuàng)建、刪除和重命名資產(chǎn),以及管理資產(chǎn)的引用關系。

將創(chuàng)建的這個類放入插件中,并命名:

UE5.1編輯器拓展【一、腳本化資產(chǎn)行為,通知,彈窗,高效復制多個同樣的資產(chǎn)】,# UE4/5編輯器,ue4,ue5,編輯器,c++,c#,虛幻引擎,虛幻

UE5.1編輯器拓展【一、腳本化資產(chǎn)行為,通知,彈窗,高效復制多個同樣的資產(chǎn)】,# UE4/5編輯器,ue4,ue5,編輯器,c++,c#,虛幻引擎,虛幻

此時此刻我們會發(fā)現(xiàn)是編譯失敗的,那是因為我們?nèi)笔Я讼嚓P的模塊。

UE5.1編輯器拓展【一、腳本化資產(chǎn)行為,通知,彈窗,高效復制多個同樣的資產(chǎn)】,# UE4/5編輯器,ue4,ue5,編輯器,c++,c#,虛幻引擎,虛幻

所以我們對模塊進行添加:

UE5.1編輯器拓展【一、腳本化資產(chǎn)行為,通知,彈窗,高效復制多個同樣的資產(chǎn)】,# UE4/5編輯器,ue4,ue5,編輯器,c++,c#,虛幻引擎,虛幻

在添加了相應的模塊之后,我們發(fā)現(xiàn),竟仍然是無法識別頭文件的狀態(tài):

UE5.1編輯器拓展【一、腳本化資產(chǎn)行為,通知,彈窗,高效復制多個同樣的資產(chǎn)】,# UE4/5編輯器,ue4,ue5,編輯器,c++,c#,虛幻引擎,虛幻

這種時候,我們就需要去這個模塊的build.cs中去查看:

UE5.1編輯器拓展【一、腳本化資產(chǎn)行為,通知,彈窗,高效復制多個同樣的資產(chǎn)】,# UE4/5編輯器,ue4,ue5,編輯器,c++,c#,虛幻引擎,虛幻

在發(fā)現(xiàn)這個路徑之后,我們來到我們現(xiàn)在插件的build.cs中去進行添加:

UE5.1編輯器拓展【一、腳本化資產(chǎn)行為,通知,彈窗,高效復制多個同樣的資產(chǎn)】,# UE4/5編輯器,ue4,ue5,編輯器,c++,c#,虛幻引擎,虛幻

System.IO.Path.GetFullPath(Target.RelativeEnginePath) + "/Source/Editor/Blutility/Private"
System.IO.Path.GetFullPath(Target.RelativeEnginePath)是獲取虛幻引擎的相對路徑
"/Source/Editor/Blutility/Private"是模塊文件的位置

這樣就可以編譯成功了。

添加新的模塊:EditorScriptingUtilities

UE5.1編輯器拓展【一、腳本化資產(chǎn)行為,通知,彈窗,高效復制多個同樣的資產(chǎn)】,# UE4/5編輯器,ue4,ue5,編輯器,c++,c#,虛幻引擎,虛幻

路徑了解

了解一下關于路徑的概念:

路徑分為兩種,分別是Object Path和Package Path.

假設現(xiàn)在有資產(chǎn)a在文件夾test里面:

Object Path的意思就是直接到資產(chǎn)的名字,那么地址就是/Game/test/a

Package Path的意思就是/Game/test/

添加debug的頭文件

這個所謂的debug頭文件是自己創(chuàng)建的,主要是為了方便使用更多的其他debug函數(shù)。

首先要準備3個頭文件:

#include "Misc/MessageDialog.h"

這個頭文件的作用是彈出對話框的
#include "Framework/Notifications/NotificationManager.h"
#include "Widgets/Notifications/SNotificationList.h"

這兩個頭文件的作用是彈出通知的

代碼【debug.h】內(nèi)涵注釋:

這個并不用cpp文件

UE5.1編輯器拓展【一、腳本化資產(chǎn)行為,通知,彈窗,高效復制多個同樣的資產(chǎn)】,# UE4/5編輯器,ue4,ue5,編輯器,c++,c#,虛幻引擎,虛幻

#pragma once
#include "Misc/MessageDialog.h"
#include "Framework/Notifications/NotificationManager.h"
#include "Widgets/Notifications/SNotificationList.h"

void DebugPrint(const FString& DebugMessage, const FColor& DebugColor)
{
	//將打印到屏幕上
	if (GEngine)
	{
		GEngine->AddOnScreenDebugMessage(-1, 8, DebugColor, DebugMessage);
	}
}

void DebugPrintLog(const FString& DebugMessage)
{
	UE_LOG(LogTemp, Warning, TEXT("%s"), *DebugMessage);
}
//彈出窗口,返回窗口類型
EAppReturnType::Type ShowMsgDialog(EAppMsgType::Type MsgType, const FString& Message,bool bShowMessageAsWarning=true )
{
	if (bShowMessageAsWarning)
	{
		FText MsgTitle = FText::FromString("!Warning!");
		//第一個輸入彈出的窗口類型,第二個是警告信息,第三個是消息標題
		return FMessageDialog::Open(MsgType, FText::FromString(Message), &MsgTitle);
	}
	else
	{
		return FMessageDialog::Open(MsgType, FText::FromString(Message));
	}
}
//消息通知
void ShowNotifyInfo(const FString& Message,float FadeOutTime)
{
	FNotificationInfo NotifyInfo(FText::FromString(Message));
	NotifyInfo.bUseLargeFont = true;//是否用較大粗體顯示字體
	NotifyInfo.FadeOutDuration = FadeOutTime;//淡出時間
	//添加通知
	FSlateNotificationManager::Get().AddNotification(NotifyInfo);
}

寫函數(shù)

在了解了一些基本知識后,我們開始在繼承了AssetActionUtility的文件的頭文件中寫一個復制資產(chǎn)的函數(shù):

.h文件

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "AssetActionUtility.h"
#include "QuicklyAssetAction.generated.h"

/**
 * 
 */
UCLASS()
class CUSTOMEDITOREXTEND_API UQuicklyAssetAction : public UAssetActionUtility
{
	GENERATED_BODY()
public:
	UFUNCTION(CallInEditor)
		void DuplicateAssets(int32 DuplicateNum);
};

然后到cpp文件中進行實現(xiàn),實現(xiàn)的同時也要包含制作的debug頭文件,用于debug:文章來源地址http://www.zghlxwxcb.cn/news/detail-727756.html

.cpp文件

// Fill out your copyright notice in the Description page of Project Settings.


#include "AssetAction/QuicklyAssetAction.h"
#include "Debug.h"
#include "EditorUtilityLibrary.h"
#include "EditorAssetLibrary.h"


void UQuicklyAssetAction::DuplicateAssets(int32 DuplicateNum)
{
	if (DuplicateNum<=0)
	{
		ShowMsgDialog(EAppMsgType::Ok, "Please enter a valid value >0", true);
		return;
	}
	//獲取選擇的資產(chǎn)數(shù)據(jù),比如獲取的是一個,還是多個資產(chǎn)
	TArray<FAssetData> SelectedAssetsData= UEditorUtilityLibrary::GetSelectedAssetData();
	//用于計數(shù)的Counter,復制成功則+1,記錄總共復制了多少資產(chǎn)
	uint32 Counter = 0;
	//迭代選擇的SelectedAssetsData數(shù)組
	for (const FAssetData& SelectedAssetData:SelectedAssetsData)
	{
		//這里迭代的是數(shù)組中的一個資產(chǎn)要復制的數(shù)量
		for (int32 i = 0; i < DuplicateNum; i++)
		{
			FString SourceAssetPath = SelectedAssetData.ObjectPath.ToString();//獲取資產(chǎn)路徑【路徑名字+資產(chǎn)名字】
			FString NewDuplicatedAssetName = SelectedAssetData.AssetName.ToString()+TEXT("_")+FString::FromInt(i+1);//新復制的資產(chǎn)名字
			FString NewPathName = FPaths::Combine(SelectedAssetData.PackagePath.ToString(), NewDuplicatedAssetName);//將包路徑【沒有資產(chǎn)名字的路徑】和新的名字結合
			//DuplicateAsset輸入的兩個,第一個是源路徑,第二個是目標路徑 
			//這里判斷是否復制資產(chǎn)是否有效,有效就保存,并且Counter+1
			if (UEditorAssetLibrary::DuplicateAsset(SourceAssetPath, NewPathName))
			{
				//保存資產(chǎn),輸入路徑。  第二個輸入是bool,為是否為改變后進行保存【而我們要直接保存,所以是false】
				UEditorAssetLibrary::SaveAsset(NewPathName,false);
				Counter++;
			}
		}
	}
	if (Counter>0)//這里是通知有多少資產(chǎn)復制成功了
	{
		ShowNotifyInfo("Duplicate Success:" + FString::FromInt(Counter) + " Files!",7);
	}
}

到了這里,關于UE5.1編輯器拓展【一、腳本化資產(chǎn)行為,通知,彈窗,高效復制多個同樣的資產(chǎn)】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 在UE5編輯器環(huán)境中使用Python

    在UE5編輯器環(huán)境中使用Python

    UE有很多Python方案,本文所講述的Python為UE5官方內(nèi)嵌版本方案,并且只能在編輯器環(huán)境下使用,使用該功能可以編寫編輯器下的輔助工具,提升開發(fā)效率。 講一講UE5中調(diào)用Python的幾種方式,首先是控制臺下調(diào)用Python,將控制臺的CMD圖標換成Python,即可輸入并執(zhí)行Python語句:

    2024年02月11日
    瀏覽(22)
  • UE5 MetaHuman SDK插件的使用【一、編輯器創(chuàng)建音波與藍圖創(chuàng)建獲取音波,語音與嘴唇口型的同步】

    UE5 MetaHuman SDK插件的使用【一、編輯器創(chuàng)建音波與藍圖創(chuàng)建獲取音波,語音與嘴唇口型的同步】

    目錄 打開插件 創(chuàng)建音頻 編輯器這直接創(chuàng)建音頻: 藍圖中創(chuàng)建和獲取音頻: 唇語: 聲音與嘴唇同步: 方法一【效果不是很好】: 方法二【效果很好,但有一段時間延遲在處理】: 邏輯: MetaHuman SDK插件 目前只支持 ue5 和 ue5.1 版本。 首先第一步 創(chuàng)建音頻 : 這樣音頻就創(chuàng)建

    2024年02月09日
    瀏覽(27)
  • Unity編輯器拓展-Odin

    Unity不支持泛型類型序列化,例如字典原生Unity不支持序列化,而Odin可以繼承序列化的Mono實現(xiàn) 功能強大且使用簡單,原生Unity想實現(xiàn)一些常見的功能需要額外自己編寫Unity擴展的編碼,實現(xiàn)功能只需要加一個特性即可Odin幫忙寫好了內(nèi)部管理和實現(xiàn) 編輯器的窗口實現(xiàn)簡單且美觀

    2024年02月08日
    瀏覽(26)
  • 【Unity編輯器】拓展Inspector視圖

    【Unity編輯器】拓展Inspector視圖

    目錄 1、拓展源生組件 2、拓展繼承組件 3、組件不可編輯 4、Context菜單 攝像機就是典型的源生組件。它的局限性就是拓展組件只能加在源生組件的最上面或者最下面,不能插在中間,不過這樣也就夠了 CustomEditor()表示自定義哪個組件,OnInspectorGUI()可以對它進行重新繪制,b

    2024年02月07日
    瀏覽(30)
  • 【Unity編輯器】拓展Project視圖

    【Unity編輯器】拓展Project視圖

    目錄 1、拓展右鍵菜單 2、創(chuàng)建一個菜單 3、拓展布局 4、監(jiān)聽事件 首先創(chuàng)建一個Editor文件夾,此文件夾可以作為多個目錄的子文件夾存在,這樣開發(fā)者就可以按照功能來劃分,將不同功能的編輯代碼放在不同的Editor目錄下。 如果屬于編輯模式下的代碼,需要放在Editor文件夾下

    2024年02月02日
    瀏覽(25)
  • 【Unity編輯器】拓展Hierarchy視圖

    【Unity編輯器】拓展Hierarchy視圖

    目錄 1、拓展菜單 2、拓展布局 3、重寫菜單 在Hierarchy視圖中點擊Create按鈕,彈出的菜單My Create-Cube就是自定義拓展菜單 菜單中已經(jīng)包含了系統(tǒng)默認的一些菜單項,我們拓展的原理就是重寫MenuItem的自定義路徑。Create按鈕下的菜單項都在GameOject路徑下面,所以只要開頭是GameOb

    2024年02月02日
    瀏覽(19)
  • Unity UGUI一鍵綁定UI控件工具(編輯器拓展)

    Unity UGUI一鍵綁定UI控件工具(編輯器拓展)

    全為一鍵生成 實現(xiàn)自動生成代碼綁定UI控件 并生成字典保存UI控件 減少自己拖拽 和手動書寫過程 適用動態(tài)加載面板 建議搭配UI框架使用 根據(jù)當前選中的gameobject 查找其下方是否有對應類型的控件 有就保存到字典中 然后通過向上遞歸拼湊地址,然后生成到粘貼板 直接粘貼到目

    2024年04月23日
    瀏覽(32)
  • Unity編輯器拓展——Editor模式下屏幕坐標轉(zhuǎn)換為世界坐標

    Unity編輯器拓展——Editor模式下屏幕坐標轉(zhuǎn)換為世界坐標

    發(fā)會牢騷,最近一直在做Unity的編輯器拓展,其中難的地方不少,但不至于到看不懂的地步,可一做到關于坐標轉(zhuǎn)換的內(nèi)容時把我弄不會了。 這個不查不知道,一查嚇一跳,Unity的坐標系非常多,有世界坐標,屏幕坐標,局部坐標,視窗坐標等等,而且每一個都是不一樣的坐

    2024年02月03日
    瀏覽(29)
  • Unity行為樹可視化編輯器開發(fā)

    Unity行為樹可視化編輯器開發(fā)

    在ARPG項目的開發(fā)過程當中,要涉及到NPC的AI系統(tǒng),一般來說,簡單的AI行為使用狀態(tài)機即可比較好的實現(xiàn),但如果NPC的行為稍微一復雜,那么使用狀態(tài)機來實現(xiàn)就會比較難維護,并且后期工作量會隨著NPC狀態(tài)的增加而成倍增加。 這時就可以考慮使用行為樹來實現(xiàn)NPC的AI,行為

    2024年02月11日
    瀏覽(29)
  • 虛幻引擎UE編輯器卡頓問題

    虛幻引擎UE編輯器卡頓問題

    使用虛幻引擎編輯器編輯藍圖頁面卡頓,視角無法轉(zhuǎn)動,只能放大縮小,甚至事件圖表都無法拖動。 顯卡驅(qū)動安裝與N卡適配的studio版本。 在NVIDIA顯卡控制面板3D設置,程序設置找到UE,設置UE OpenGL渲染為GPU。 設置里找到圖形設置,添加UE,設置圖形首選項為高性能。

    2024年02月15日
    瀏覽(122)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包