21 ConstructorHelpers::FObjectFinder<UTextureRenderTarget2D> rtCanvasRef(TEXT(
"/Script/Engine.TextureRenderTarget2D'/Game/CustomContents/UI/DrawingBoard/RT_Canvas.RT_Canvas'"));
22 if (rtCanvasRef.Succeeded())
27 ConstructorHelpers::FObjectFinder<UTexture2D> dotLineImageRef(TEXT(
"/Script/Engine.Texture2D'/Game/CustomContents/UI/DrawingBoard/writepanel.writepanel'"));
28 if (dotLineImageRef.Succeeded())
33 ConstructorHelpers::FObjectFinder<UFont> guideTextFontRef(TEXT(
"/Script/Engine.Font'/Engine/EngineFonts/Roboto.Roboto'"));
34 if (guideTextFontRef.Succeeded())
79 const FGeometry CanvasGeometry =
Image_Canvas->GetCachedGeometry();
80 if (!CanvasGeometry.IsUnderLocation(InMouseEvent.GetScreenSpacePosition()))
82 return FReply::Unhandled();
92 if (InMouseEvent.IsMouseButtonDown(EKeys::LeftMouseButton))
96 else if (InMouseEvent.IsMouseButtonDown(EKeys::RightMouseButton))
101 return FReply::Handled();
117 if (!
bIsDrawing)
return Super::NativeOnMouseMove(InGeometry, InMouseEvent);
119 if (InMouseEvent.IsMouseButtonDown(EKeys::LeftMouseButton))
123 else if (InMouseEvent.IsMouseButtonDown(EKeys::RightMouseButton))
128 return FReply::Handled();
146 UImage* tempImage = NewObject<UImage>(
this, UImage::StaticClass());
150 FSlateBrush tempImageBrush = tempImage->GetBrush();
151 tempImageBrush.SetImageSize(FVector2D(360));
152 tempImage->SetBrush(tempImageBrush);
158 UTextBlock* tempText = NewObject<UTextBlock>(
this, UTextBlock::StaticClass());
159 tempText->SetText(FText::FromString(FString::Printf(TEXT(
"%c"), letter)));
160 tempText->SetColorAndOpacity(FLinearColor(0.4f, 0.4f, 0.4f, 0.5f));
161 tempText->SetMinDesiredWidth(360.f);
162 tempText->SetJustification(ETextJustify::Type::Center);
181 UCanvas* canvas =
nullptr;
183 FDrawToRenderTargetContext context;
184 UKismetRenderingLibrary::BeginDrawCanvasToRenderTarget(
this,
RT_Canvas, canvas, size, context);
187 float thickness = (drawColor == FLinearColor::Black) ? 10 : 30;
189 canvas->K2_DrawBox(mousePos, FVector2D(1, 1), thickness, drawColor);
191 UKismetRenderingLibrary::EndDrawCanvasToRenderTarget(
this, context);
197 UCanvas* canvas =
nullptr;
199 FDrawToRenderTargetContext context;
200 UKismetRenderingLibrary::BeginDrawCanvasToRenderTarget(
this,
RT_Canvas, canvas, size, context);
205 FVector2D drawOffset = (mousePos - currPos) / div;
208 for (int32 i = 1; i < div; ++i)
213 float thickness = (drawColor == FLinearColor::Black) ? 10 : 25;
215 canvas->K2_DrawLine(
prevMousePos, currPos, thickness, drawColor);
219 UKismetRenderingLibrary::EndDrawCanvasToRenderTarget(
this, context);