完善角色配置UI
This commit is contained in:
parent
3c6679032d
commit
6d457c9ca2
Binary file not shown.
@ -37,7 +37,7 @@ void SCharacterWindow::Construct(const FArguments& InArgs)
|
|||||||
SelectedCharacter = *CharacterInfo;
|
SelectedCharacter = *CharacterInfo;
|
||||||
|
|
||||||
this->CharacterWidget_Name->SetInputText(SelectedCharacter.name);
|
this->CharacterWidget_Name->SetInputText(SelectedCharacter.name);
|
||||||
this->CharacterWidget_Age->SetInputText(FString::FromInt(SelectedCharacter.age));
|
this->CharacterWidget_Age->SetNumber(SelectedCharacter.age);
|
||||||
this->CharacterWidget_Personality->SetInputText(SelectedCharacter.personality);
|
this->CharacterWidget_Personality->SetInputText(SelectedCharacter.personality);
|
||||||
this->CharacterWidget_Profession->SetInputText(SelectedCharacter.profession);
|
this->CharacterWidget_Profession->SetInputText(SelectedCharacter.profession);
|
||||||
this->CharacterWidget_BG->SetInputText(SelectedCharacter.characterBackground);
|
this->CharacterWidget_BG->SetInputText(SelectedCharacter.characterBackground);
|
||||||
@ -56,9 +56,10 @@ void SCharacterWindow::Construct(const FArguments& InArgs)
|
|||||||
.AutoHeight()
|
.AutoHeight()
|
||||||
.Padding(0, 10, 0, 0)
|
.Padding(0, 10, 0, 0)
|
||||||
[
|
[
|
||||||
SAssignNew(CharacterWidget_Age, SConfigItem_Text)
|
SAssignNew(CharacterWidget_Age, SConfigItem_NumberSpin<int32>)
|
||||||
.Title(LOCTEXT("CharacterAge", "角色年龄"))
|
.Title(LOCTEXT("CharacterAge", "角色年龄"))
|
||||||
.HintText(LOCTEXT("HintCharacterName", "请输入角色年龄"))
|
.MinNumber(1)
|
||||||
|
.MaxNumber(99)
|
||||||
]
|
]
|
||||||
+SVerticalBox::Slot()
|
+SVerticalBox::Slot()
|
||||||
.AutoHeight()
|
.AutoHeight()
|
||||||
@ -92,6 +93,18 @@ void SCharacterWindow::Construct(const FArguments& InArgs)
|
|||||||
.Title(LOCTEXT("CharacterName", "角色对话风格"))
|
.Title(LOCTEXT("CharacterName", "角色对话风格"))
|
||||||
.HintText(LOCTEXT("HintCharacterName", "请输入角色对话风格"))
|
.HintText(LOCTEXT("HintCharacterName", "请输入角色对话风格"))
|
||||||
]
|
]
|
||||||
|
+ SVerticalBox::Slot()
|
||||||
|
.AutoHeight()
|
||||||
|
.Padding(0, 10, 0, 0)
|
||||||
|
[
|
||||||
|
SNew( SButton)
|
||||||
|
.Text(LOCTEXT("AddCharacter", "添加角色到服务器中"))
|
||||||
|
.OnClicked_Lambda([this]()
|
||||||
|
{
|
||||||
|
AddCharacterToServer();
|
||||||
|
return FReply::Handled();
|
||||||
|
})
|
||||||
|
]
|
||||||
];
|
];
|
||||||
// 注册绘制后回调
|
// 注册绘制后回调
|
||||||
RegisterActiveTimer(0.f,
|
RegisterActiveTimer(0.f,
|
||||||
@ -148,4 +161,27 @@ void SCharacterWindow::HandleReceiveData(FNetProtocol protocol)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SCharacterWindow::AddCharacterToServer()
|
||||||
|
{
|
||||||
|
FAIGCModule* ModulePtr = FModuleManager::GetModulePtr<FAIGCModule>("AIGC");
|
||||||
|
if (ModulePtr)
|
||||||
|
{
|
||||||
|
//生成角色信息
|
||||||
|
FCharacterInfo CharacterInfo;
|
||||||
|
CharacterInfo.name = CharacterWidget_Name->GetInputText();
|
||||||
|
CharacterInfo.age = CharacterWidget_Age->GetNumber();
|
||||||
|
CharacterInfo.personality = CharacterWidget_Personality->GetInputText();
|
||||||
|
CharacterInfo.profession = CharacterWidget_Profession->GetInputText();
|
||||||
|
CharacterInfo.characterBackground = CharacterWidget_BG->GetInputText();
|
||||||
|
CharacterInfo.chat_style = CharacterWidget_Style->GetInputText();
|
||||||
|
|
||||||
|
FString CharacterJson;
|
||||||
|
FJsonObjectConverter::UStructToJsonObjectString(CharacterInfo, CharacterJson);
|
||||||
|
|
||||||
|
UWebSocketManager* WebSocketManager = ModulePtr->GetWebSocketManager();
|
||||||
|
WebSocketManager->SendData(FNetCommand::AddCharacter, CharacterJson);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#undef LOCTEXT_NAMESPACE
|
#undef LOCTEXT_NAMESPACE
|
@ -23,6 +23,7 @@ void SConfigItem_Text::Construct(const FArguments& InArgs)
|
|||||||
[
|
[
|
||||||
SNew(SEditableTextBox)
|
SNew(SEditableTextBox)
|
||||||
.HintText( InArgs._HintText)
|
.HintText( InArgs._HintText)
|
||||||
|
.VirtualKeyboardType(InArgs._KeyboardType)
|
||||||
.Text_Lambda([this, InArgs]() {
|
.Text_Lambda([this, InArgs]() {
|
||||||
return FText::FromString(InputText);
|
return FText::FromString(InputText);
|
||||||
})
|
})
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "CoreMinimal.h"
|
#include "CoreMinimal.h"
|
||||||
|
#include "ConfigItem_NumberSpin.h"
|
||||||
#include "ConfigItem_Text.h"
|
#include "ConfigItem_Text.h"
|
||||||
#include "Definations.h"
|
#include "Definations.h"
|
||||||
|
|
||||||
@ -18,12 +19,13 @@ public:
|
|||||||
SLATE_END_ARGS()
|
SLATE_END_ARGS()
|
||||||
void Construct(const FArguments& InArgs);
|
void Construct(const FArguments& InArgs);
|
||||||
EActiveTimerReturnType OnPostPaint(double X, float Arg);
|
EActiveTimerReturnType OnPostPaint(double X, float Arg);
|
||||||
|
|
||||||
void HandleReceiveData(FNetProtocol protocol);
|
void HandleReceiveData(FNetProtocol protocol);
|
||||||
|
void AddCharacterToServer();
|
||||||
protected:
|
protected:
|
||||||
TSharedPtr<SComboBox<TSharedPtr<FCharacterInfo>>> CharacterComboBox;
|
TSharedPtr<SComboBox<TSharedPtr<FCharacterInfo>>> CharacterComboBox;
|
||||||
TSharedPtr<SConfigItem_Text> CharacterWidget_Name; //角色名称
|
TSharedPtr<SConfigItem_Text> CharacterWidget_Name; //角色名称
|
||||||
TSharedPtr<SConfigItem_Text> CharacterWidget_Age; //角色年龄
|
TSharedPtr<SConfigItem_NumberSpin<int32>> CharacterWidget_Age; //角色年龄
|
||||||
TSharedPtr<SConfigItem_Text> CharacterWidget_Personality; //角色性格
|
TSharedPtr<SConfigItem_Text> CharacterWidget_Personality; //角色性格
|
||||||
TSharedPtr<SConfigItem_Text> CharacterWidget_Profession; //角色专业
|
TSharedPtr<SConfigItem_Text> CharacterWidget_Profession; //角色专业
|
||||||
TSharedPtr<SConfigItem_Text> CharacterWidget_BG; //角色背景
|
TSharedPtr<SConfigItem_Text> CharacterWidget_BG; //角色背景
|
||||||
@ -34,3 +36,5 @@ protected:
|
|||||||
TArray<TSharedPtr<FCharacterInfo>> CharacterInfos;
|
TArray<TSharedPtr<FCharacterInfo>> CharacterInfos;
|
||||||
FCharacterInfo SelectedCharacter;
|
FCharacterInfo SelectedCharacter;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -53,11 +53,10 @@ public:
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
NumericType GetNumber() const { return InputValue; }
|
NumericType GetNumber() const { return InputValue; }
|
||||||
|
void SetNumber(NumericType InValue) { InputValue = InValue; }
|
||||||
private:
|
private:
|
||||||
void OnValueChanged(NumericType NewValue)
|
void OnValueChanged(NumericType NewValue)
|
||||||
{
|
{
|
||||||
UE_LOG(LogTemp, Display, TEXT("OnValueChanged newvalue = %d"), (int32)NewValue);
|
|
||||||
InputValue = NewValue;
|
InputValue = NewValue;
|
||||||
Invalidate(EInvalidateWidget::Layout);
|
Invalidate(EInvalidateWidget::Layout);
|
||||||
}
|
}
|
||||||
|
@ -13,11 +13,12 @@ public:
|
|||||||
: _Title()
|
: _Title()
|
||||||
, _HintText()
|
, _HintText()
|
||||||
, _DefaultText()
|
, _DefaultText()
|
||||||
|
,_KeyboardType(EKeyboardType::Keyboard_Default)
|
||||||
{}
|
{}
|
||||||
SLATE_ARGUMENT(FText, Title) // 标题参数
|
SLATE_ARGUMENT(FText, Title) // 标题参数
|
||||||
SLATE_ARGUMENT(FText, HintText) // 默认值参数
|
SLATE_ARGUMENT(FText, HintText) // 默认值参数
|
||||||
SLATE_ARGUMENT(FText, DefaultText) // 默认值参数
|
SLATE_ARGUMENT(FText, DefaultText) // 默认值参数
|
||||||
|
SLATE_ARGUMENT(EKeyboardType, KeyboardType)
|
||||||
SLATE_END_ARGS()
|
SLATE_END_ARGS()
|
||||||
|
|
||||||
void Construct(const FArguments& InArgs);
|
void Construct(const FArguments& InArgs);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user