您当前的位置: 首页 >  灵境引路人 c++

【虚幻引擎UE】UE5 c++创建自定义结构体

灵境引路人 发布时间:2022-08-29 12:12:53 ,浏览量:3

【虚幻引擎UE】UE5 CullDistanceSizePair可见性剔除问题

这两天写距离剔除的时候发现了一个坑,在4.27版本中,创建CullDistanceSizePair结构体时是正常的 在这里插入图片描述 在5.03版本中 在这里插入图片描述

在这里插入图片描述

就不一样了!!!打开源码,发现新版本中这个结构体的参数改为了只读

struct FCullDistanceSizePair
{
	GENERATED_USTRUCT_BODY()

	/** Size to associate with cull distance. */
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=CullDistanceSizePair)
	float Size;

	/** Cull distance associated with size. */
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=CullDistanceSizePair)
	float CullDistance;


	FCullDistanceSizePair()
		: Size(0)
		, CullDistance(0)
	{ }

	FCullDistanceSizePair(float InSize, float InCullDistance)
		: Size(InSize)
		, CullDistance(InCullDistance)
	{ }
};

由于修改引擎代码代价有点高,于是考虑自己建一个结构体来实现效果 在这里插入图片描述 发现无法建单精度浮点类型,只能建双精度。 在这里插入图片描述 因此考虑通过C++直接创建一个结构体: 在这里插入图片描述 代码如下:

.cpp中:

// Fill out your copyright notice in the Description page of Project Settings.


#include "MyStruct.h"

.h中

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "Engine/UserDefinedStruct.h"
#include "MyStruct.generated.h"

/**
 * 
 */
UCLASS()
class MY_API UMyStruct : public UUserDefinedStruct
{
	GENERATED_BODY()

};
USTRUCT(BlueprintType)
struct FSelfCullDistanceSizePair  // 必须以F开头
{
	GENERATED_USTRUCT_BODY()  
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SelfCullDistanceSizePair)
	float Size;
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SelfCullDistanceSizePair)
	float CullDistance;
};

注意要既要包括GENERATED_BODY() 又要包括GENERATED_USTRUCT_BODY()

实现效果如下: 在这里插入图片描述

但是还是不能用……orz

希望新版本会解决这个问题吧!

关注
打赏
1688896170
查看更多评论

灵境引路人

暂无认证

  • 3浏览

    0关注

    28博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.3302s