【虚幻引擎UE】UE5 简单实现范围计算并绘制圆圈

先来看看可以实现的效果:
在这里插入图片描述

一、实现快速绘制圆圈的C++函数

.cpp文件

#include "drawPolygon.h"
#include "Components/LineBatchComponent.h"
#include "Engine/World.h"
#include "EngineGlobals.h"
#include "PrimitiveViewRelevance.h"
#include "PrimitiveSceneProxy.h"
#include "Engine/Engine.h"
#include "MaterialShared.h"
#include "Materials/Material.h"
#include "Engine/CollisionProfile.h"
#include "SceneManagement.h"
#include "DynamicMeshBuilder.h"

void UdrawPolygon::DrawCircleArc(UObject* WorldContextObject, const FVector& Center, float Radius, const FVector& X, const FVector& Y, int32 Segments, const FColor& Color, uint8 DepthPriority, float fLifeTime)
{

	ULineBatchComponent* const LineBatcher = WorldContextObject->GetWorld()->PersistentLineBatcher;
	LineBatcher->DrawCircle(Center, X, Y, Color, Radius, Segments, DepthPriority);
}

.h文件

#pragma once

#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "drawPolygon.generated.h"

UCLASS()
class DRAWCIRCLE_API UdrawPolygon : public UBlueprintFunctionLibrary
{
	GENERATED_BODY()
	UFUNCTION(BlueprintCallable, Category = "Custom", meta = (Keywords = "draw"))
	static void DrawCircleArc(UObject* WorldContextObject, const FVector& Center, float Radius, const FVector& X, const FVector& Y, int32 Segments, const FColor& Color, uint8 DepthPriority, float fLifeTime);

};

二、简单交互UI

1、创建输入参数变量
在这里插入图片描述
2、绘制界面绑定变量
在这里插入图片描述
3、变量输入
在这里插入图片描述

三、绘制图形方法

参数说明:
Center:中心点
X:X方向比例, 默认向量1,0,0
Y:Y方向比例, 默认向量0,1,0
Radius:需要绘制的圆圈半径
Segments: 圆圈的分段数,默认180,数值大较为平滑
color:根据需要输入RGBA颜色值
Depth Priority: 深度优先级,默认为5
F Lift Time: 持续的时间,根据需要调整

案例中根据分类生成不同颜色不同半径的圆圈。
在这里插入图片描述

四、计算半径方法

此部分根据具体的业务规则编写代码,此处仅展示一个根据输入值代入公式输出半径值的案例。
原始案例公式:在这里插入图片描述

在这里插入图片描述
创建局部变量并设置默认值,即为公式中常数值的代入。
在这里插入图片描述

五、方法集成实现

在关卡蓝图中进行方法集成。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灵境引路人

感谢投喂 ~ ❤

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值