Skip to content

Commit 0b7ea76

Browse files
committed
Add UDreamTextBlock::SetAnimationSetting
1 parent 9f074b5 commit 0b7ea76

5 files changed

Lines changed: 32 additions & 3 deletions

File tree

DreamAnimationTextBlock.uplugin

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"FileVersion": 3,
33
"Version": 1,
4-
"VersionName": "2.0.1",
4+
"VersionName": "2.1.0",
55
"FriendlyName": "DreamAnimationTextBlock",
66
"Description": "Animation Text Block Widget",
77
"Category": "DreamPlugin",

Source/DreamAnimationTextBlock/Private/Components/DreamTextBlock.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,14 @@ void UDreamTextBlock::InitializeAnimation()
389389
}
390390
}
391391

392+
void UDreamTextBlock::SetAnimationSetting(UDreamTextBlockAnimationSetting* InAnimationSetting, bool bInitializeAnimation)
393+
{
394+
for (auto Element : TextLines)
395+
{
396+
Element->SetAnimationSetting(InAnimationSetting, bInitializeAnimation);
397+
}
398+
}
399+
392400
void UDreamTextBlock::OnLastCharAnimationCompleted(const FDreamTextBlockSimpleDelegate& Delegate)
393401
{
394402
TextChars.Last()->OnAnimationCompletedCpp.BindLambda([Delegate]()

Source/DreamAnimationTextBlock/Private/Components/DreamTextLine.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ UDreamTextChar* UDreamTextLine::PushChar(FString Char, bool bInitializeAnimation
5353
CharWidget->SetFont(Font);
5454
CharWidget->SetAnimationSetting(AnimationSetting, bInitializeAnimation);
5555

56+
Chars.Add(MakeWeakObjectPtr(CharWidget));
57+
5658
return CharWidget;
5759
}
5860

@@ -61,7 +63,14 @@ void UDreamTextLine::SetFont(FSlateFontInfo InFont)
6163
Font = InFont;
6264
}
6365

64-
void UDreamTextLine::SetAnimationSetting(UDreamTextBlockAnimationSetting* InAnimationSetting)
66+
void UDreamTextLine::SetAnimationSetting(UDreamTextBlockAnimationSetting* InAnimationSetting, bool bInitializeAnimation)
6567
{
6668
AnimationSetting = InAnimationSetting;
69+
for (auto CharWidget : Chars)
70+
{
71+
if (CharWidget.IsValid())
72+
{
73+
CharWidget->SetAnimationSetting(AnimationSetting, bInitializeAnimation);
74+
}
75+
}
6776
}

Source/DreamAnimationTextBlock/Public/Components/DreamTextBlock.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,14 @@ class DREAMANIMATIONTEXTBLOCK_API UDreamTextBlock : public UUserWidget
199199
*/
200200
UFUNCTION(BlueprintCallable, Category="DreamTextBlock|Animation")
201201
void InitializeAnimation();
202+
203+
/**
204+
* 设置动画设置对象。
205+
* @param InAnimationSetting 动画设置对象
206+
* @param bInitializeAnimation 是否初始化动画数据
207+
*/
208+
UFUNCTION(BlueprintCallable, Category="DreamTextBlock|Animation")
209+
void SetAnimationSetting(UDreamTextBlockAnimationSetting* InAnimationSetting, bool bInitializeAnimation = true);
202210

203211
DECLARE_DYNAMIC_DELEGATE(FDreamTextBlockSimpleDelegate);
204212

Source/DreamAnimationTextBlock/Public/Components/DreamTextLine.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,11 @@ class DREAMANIMATIONTEXTBLOCK_API UDreamTextLine : public UUserWidget
5252
/**
5353
* 设置动画设置
5454
* @param InAnimationSetting 动画设置
55+
* @param bInitializeAnimation 是否初始化动画
5556
*/
5657
UFUNCTION(BlueprintCallable, Category="DreamTextLine|Animation")
57-
void SetAnimationSetting(UDreamTextBlockAnimationSetting* InAnimationSetting);
58+
void SetAnimationSetting(UDreamTextBlockAnimationSetting* InAnimationSetting, bool bInitializeAnimation = true);
59+
60+
protected:
61+
TArray<TWeakObjectPtr<UDreamTextChar>> Chars;
5862
};

0 commit comments

Comments
 (0)