diff --git a/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFish.dll b/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFish.dll index da9c866..dc09ac8 100644 Binary files a/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFish.dll and b/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFish.dll differ diff --git a/ProjectFish/Plugins/Dialogue/Binaries/Win64/UnrealEditor-Dialogue.dll b/ProjectFish/Plugins/Dialogue/Binaries/Win64/UnrealEditor-Dialogue.dll index 7ee2a5a..43be0e6 100644 Binary files a/ProjectFish/Plugins/Dialogue/Binaries/Win64/UnrealEditor-Dialogue.dll and b/ProjectFish/Plugins/Dialogue/Binaries/Win64/UnrealEditor-Dialogue.dll differ diff --git a/ProjectFish/Plugins/Dialogue/Binaries/Win64/UnrealEditor-DialogueEditor.dll b/ProjectFish/Plugins/Dialogue/Binaries/Win64/UnrealEditor-DialogueEditor.dll index 9d7a96e..cb2bb19 100644 Binary files a/ProjectFish/Plugins/Dialogue/Binaries/Win64/UnrealEditor-DialogueEditor.dll and b/ProjectFish/Plugins/Dialogue/Binaries/Win64/UnrealEditor-DialogueEditor.dll differ diff --git a/ProjectFish/Plugins/Dialogue/Source/Dialogue/Dialogue.Build.cs b/ProjectFish/Plugins/Dialogue/Source/Dialogue/Dialogue.Build.cs index fda35df..dc514b9 100644 --- a/ProjectFish/Plugins/Dialogue/Source/Dialogue/Dialogue.Build.cs +++ b/ProjectFish/Plugins/Dialogue/Source/Dialogue/Dialogue.Build.cs @@ -40,6 +40,7 @@ public class Dialogue : ModuleRules "Slate", "SlateCore", // ... add private dependencies that you statically link with here ... + "UMG" } ); diff --git a/ProjectFish/Plugins/Dialogue/Source/Dialogue/Private/DialogueAsset.cpp b/ProjectFish/Plugins/Dialogue/Source/Dialogue/Private/DialogueAsset.cpp index 4bc288b..f50cb05 100644 --- a/ProjectFish/Plugins/Dialogue/Source/Dialogue/Private/DialogueAsset.cpp +++ b/ProjectFish/Plugins/Dialogue/Source/Dialogue/Private/DialogueAsset.cpp @@ -2,7 +2,7 @@ #include "DialogueAsset.h" - +#include "Runtime/UMG/Public/Blueprint/UserWidget.h" #include "UObject/ObjectSaveContext.h" @@ -11,6 +11,12 @@ bool UDialogueConditions::IsConditionMet_Implementation() return true; } +UDialogueAsset::UDialogueAsset() +{ + UClass* WidgetClass = LoadClass(this, TEXT("/Game/UI/Dialogue/UMG_DialogueWindow.UMG_DialogueWindow_C")); + DialogueWidget = WidgetClass; +} + void UDialogueAsset::BeginDialogue() { CurrentNode = NodeDatas[0]; diff --git a/ProjectFish/Plugins/Dialogue/Source/Dialogue/Public/DialogueAsset.h b/ProjectFish/Plugins/Dialogue/Source/Dialogue/Public/DialogueAsset.h index 6b011fb..3d46b82 100644 --- a/ProjectFish/Plugins/Dialogue/Source/Dialogue/Public/DialogueAsset.h +++ b/ProjectFish/Plugins/Dialogue/Source/Dialogue/Public/DialogueAsset.h @@ -102,6 +102,7 @@ class DIALOGUE_API UDialogueAsset : public UDataAsset { GENERATED_BODY() public: + UDialogueAsset(); UFUNCTION(BlueprintCallable, Category = Dialogue) void BeginDialogue(); UFUNCTION(BlueprintPure, Category = Dialogue) @@ -118,8 +119,11 @@ public: FNeedPlayeSelectDelegate OnNeedPlayerSelect; UPROPERTY(BlueprintAssignable, Category=Dialogue) FOnDialogueComplete OnDialogueComplete; + + UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = DialogueAsset) + TSubclassOf DialogueWidget; - UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Dialogue) + UPROPERTY(BlueprintReadOnly, Category = Dialogue) TArray NodeDatas; private: UDialogueRuntimeNode* CurrentNode = nullptr; diff --git a/ProjectFish/Plugins/Dialogue/Source/DialogueEditor/Private/DialogueDetailsTabSummoner.cpp b/ProjectFish/Plugins/Dialogue/Source/DialogueEditor/Private/DialogueDetailsTabSummoner.cpp index c88a3cd..91e52ad 100644 --- a/ProjectFish/Plugins/Dialogue/Source/DialogueEditor/Private/DialogueDetailsTabSummoner.cpp +++ b/ProjectFish/Plugins/Dialogue/Source/DialogueEditor/Private/DialogueDetailsTabSummoner.cpp @@ -34,11 +34,23 @@ TSharedRef FDialogueDetailsTabSummoner::CreateTabBody(const FWorkflowTa DetailsViewArgs.bShowModifiedPropertiesOption = false; DetailsViewArgs.bShowScrollBar = false; + //node节点详情面板 TSharedPtr DetailsView = PropertyEditorModule.CreateDetailView(DetailsViewArgs); DetailsView->SetObject(nullptr); Editor->SetDetailsView(DetailsView); + //资源的详情面板 + TSharedPtr DialogueAssetDetailView = PropertyEditorModule.CreateDetailView(DetailsViewArgs); + DialogueAssetDetailView->SetObject(Editor->GetDialogueBeingEdited()); + + return SNew(SVerticalBox) + + SVerticalBox::Slot() + .AutoHeight() + .HAlign(HAlign_Fill) + [ + DialogueAssetDetailView.ToSharedRef() + ] + SVerticalBox::Slot() .FillHeight(1.0f) .HAlign(HAlign_Fill) diff --git a/ProjectFish/Plugins/Dialogue/Source/DialogueEditor/Public/DialogueAssetEditor.h b/ProjectFish/Plugins/Dialogue/Source/DialogueEditor/Public/DialogueAssetEditor.h index 7c826cd..b57054e 100644 --- a/ProjectFish/Plugins/Dialogue/Source/DialogueEditor/Public/DialogueAssetEditor.h +++ b/ProjectFish/Plugins/Dialogue/Source/DialogueEditor/Public/DialogueAssetEditor.h @@ -44,6 +44,7 @@ public: // 图表选择改变回调,传递属性页需要显示的内容 void OnGraphSelectionChanged(const FGraphPanelSelectionSet& Selection); + TObjectPtr GetDialogueBeingEdited() {return DialogueBeingEdited;} protected: void SaveGraphData(); void LoadGraphData();