• 【虚幻引擎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);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    .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);
    
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    二、简单交互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: 持续的时间,根据需要调整

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

    四、计算半径方法

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

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

    五、方法集成实现

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

  • 相关阅读:
    【自然语言处理】seq2seq模型—机器翻译
    leetcode - 725. Split Linked List in Parts
    【Pytorch】张量的维度/轴/dim的理解
    vscode 个人实用插件(资源集合)
    创建外部表步骤及解决ORA-29913:执行ODCIETTABLEOPEN调出时出错
    LuatOS-SOC接口文档(air780E)-- fonts - 字体库
    Java泛型详解
    养猫后家里有异味?哪款宠物空气净化器可以去除猫皮屑过敏源?
    POI及EasyExcel
    Django(8):请求对象和响应对象
  • 原文地址:https://blog.csdn.net/qq_35079107/article/details/127887893