友達の輪 2024-08-10 21:03 采纳率: 97.4%
浏览 9

虚幻C++如何用TArray声明一个Uobject的二维数组?

做项目的时候发现一个问题,我好像无法给一个TArray<TArray<UUserWidget_Single_Item*>> ItemArray;添加UPROPERTY()标记,因为在第一个尖括号内包含的对象实际上是TArray,而不是UObject类,但如果不加UPROPERTY标记我担心我创建出来的二维数组里的成员会被垃圾回收掉,请问应该怎么创建这个二维数组。别发GPT的答案,看见GPT直接拉给加举报

img

  • 写回答

2条回答 默认 最新

  • 一直免费一直爽 2024-08-10 21:03
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    要解决这个问题,首先确保在UserWidgetSingleIteamList类中正确地使用了UObject类。这里有一个示例:

    class HORRORGAMES_API UUserWidgetSingleIteamList : public UUserWidget
    {
        GENERATED_BODY()
        
        UPARAM()
        TArray<TArray<UUserWidget_Single_Item*>> ItemRow;
    
        void BeginPlay(AHorrorHUD* OwnerHUD)
        {
            // Initialize the ItemRow array
            for (auto& row : ItemRow)
            {
                // Add your logic to create and initialize each item in the row here
            }
        }
    };
    

    在这个例子中,我们创建了一个名为ItemRow的数组,并将它作为构造函数参数传递给UUserWidgetSingleIteamList对象。这样,你可以像处理其他UObject一样处理ItemRow

    另外,在你的BeginPlay方法中,你可以根据需要为每个元素添加逻辑以初始化它们。例如,你可以设置每个元素的大小、颜色等属性。

    如果你仍然遇到问题,可能是因为你在编译时没有正确地引用UObject类。尝试重新编译并检查是否有任何错误消息。

    希望这能帮助你解决问题!

    评论 编辑记录

报告相同问题?

问题事件

  • 修改了问题 8月10日
  • 创建了问题 8月10日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见