72 const FText PreviousText =
RichTxt->GetText();
75 FSlateFontInfo NewFont =
RichTxt->GetDefaultTextStyle().Font;
76 NewFont.Size = InFontSize;
79 FTextBlockStyle NewStyle;
80 NewStyle.SetFont(NewFont);
81 NewStyle.SetColorAndOpacity(FSlateColor(
TextColor));
83 RichTxt->SetDefaultTextStyle(NewStyle);
85 if (!bPreserveText && !
DefaultText.IsEmpty() && PreviousText.IsEmpty())
89 else if (bPreserveText)
95 if (UHyperLinkPluginBPLibrary* LinkDecorator = Cast<UHyperLinkPluginBPLibrary>(
96 RichTxt->GetDecoratorByClass(UHyperLinkPluginBPLibrary::StaticClass())))
98 FTextBlockStyle LinkTextStyle = LinkDecorator->Style.TextStyle;
99 LinkTextStyle.SetFont(NewFont);
100 LinkTextStyle.SetColorAndOpacity(FSlateColor(
TextColor));
101 LinkDecorator->Style.SetTextStyle(LinkTextStyle);
112 const float AvailableWidth = MyGeometry.GetLocalSize().X;
113 if (AvailableWidth <= 0.0f)
116 const FVector2D DesiredSize =
RichTxt->GetDesiredSize();
117 const float DesiredWidth = DesiredSize.X;
122 const float WidthThreshold = 2.0f;
123 if (DesiredWidth > AvailableWidth + WidthThreshold && DesiredWidth > 0.0f)
126 const float Scale = (AvailableWidth * 0.98f) / DesiredWidth;
127 const int32 ScaledSize = FMath::FloorToInt(
static_cast<float>(
FontSize) * Scale);
void OnClickLink(const FString &LinkID, const FString &Content)
FOnClickHyperLink OnClickHyperLink
virtual void NativePreConstruct() override
void SetText(const FWordData &WordData)
virtual void NativeConstruct() override
virtual void NativeTick(const FGeometry &MyGeometry, float InDeltaTime) override
bool bNeedsFontSizeUpdate
폰트 크기 조정이 필요한지 여부
int32 StabilizationFrames
안정화를 위한 프레임 카운터
void UpdateFontSizeToFitWidth(const FGeometry &MyGeometry)
TArray< FPhonemeData > CachedPhonemeData
void ApplyStyleWithFontSize(int32 InFontSize, bool bPreserveText)
TObjectPtr< class URichTextBlock > RichTxt