修改对话编辑器,支持ui类的配置
This commit is contained in:
parent
6abe8a1c5f
commit
7e5a54d08f
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -40,6 +40,7 @@ public class Dialogue : ModuleRules
|
||||
"Slate",
|
||||
"SlateCore",
|
||||
// ... add private dependencies that you statically link with here ...
|
||||
"UMG"
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
@ -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<UUserWidget>(this, TEXT("/Game/UI/Dialogue/UMG_DialogueWindow.UMG_DialogueWindow_C"));
|
||||
DialogueWidget = WidgetClass;
|
||||
}
|
||||
|
||||
void UDialogueAsset::BeginDialogue()
|
||||
{
|
||||
CurrentNode = NodeDatas[0];
|
||||
|
||||
@ -102,6 +102,7 @@ class DIALOGUE_API UDialogueAsset : public UDataAsset
|
||||
{
|
||||
GENERATED_BODY()
|
||||
public:
|
||||
UDialogueAsset();
|
||||
UFUNCTION(BlueprintCallable, Category = Dialogue)
|
||||
void BeginDialogue();
|
||||
UFUNCTION(BlueprintPure, Category = Dialogue)
|
||||
@ -119,7 +120,10 @@ public:
|
||||
UPROPERTY(BlueprintAssignable, Category=Dialogue)
|
||||
FOnDialogueComplete OnDialogueComplete;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Dialogue)
|
||||
UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = DialogueAsset)
|
||||
TSubclassOf<UUserWidget> DialogueWidget;
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, Category = Dialogue)
|
||||
TArray<UDialogueRuntimeNode*> NodeDatas;
|
||||
private:
|
||||
UDialogueRuntimeNode* CurrentNode = nullptr;
|
||||
|
||||
@ -34,11 +34,23 @@ TSharedRef<SWidget> FDialogueDetailsTabSummoner::CreateTabBody(const FWorkflowTa
|
||||
DetailsViewArgs.bShowModifiedPropertiesOption = false;
|
||||
DetailsViewArgs.bShowScrollBar = false;
|
||||
|
||||
//node节点详情面板
|
||||
TSharedPtr<IDetailsView> DetailsView = PropertyEditorModule.CreateDetailView(DetailsViewArgs);
|
||||
DetailsView->SetObject(nullptr);
|
||||
Editor->SetDetailsView(DetailsView);
|
||||
|
||||
//资源的详情面板
|
||||
TSharedPtr<IDetailsView> 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)
|
||||
|
||||
@ -44,6 +44,7 @@ public:
|
||||
// 图表选择改变回调,传递属性页需要显示的内容
|
||||
void OnGraphSelectionChanged(const FGraphPanelSelectionSet& Selection);
|
||||
|
||||
TObjectPtr<UDialogueAsset> GetDialogueBeingEdited() {return DialogueBeingEdited;}
|
||||
protected:
|
||||
void SaveGraphData();
|
||||
void LoadGraphData();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user