You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C++中使用UKismetArrayLibrary::Array_Resize调整UE4 TArray大小

解决方案

推荐方案:直接使用TArray原生Resize方法

C++ 中的 TArray 容器本身自带 Resize 成员方法,行为和蓝图的 Array_Resize 完全一致,不需要额外依赖Kismet库,性能和写法都更优:

// 参数为调整后的目标数组大小
Items.Resize(10); // 示例:将Items数组大小调整为10
  • 扩容场景下,新增的元素默认初始化为nullptr,后续需要手动生成AItem对象赋值后再访问,避免空指针报错
  • 缩容场景下,超出目标大小的元素会被从数组中移除,但不会自动销毁指针指向的AActor实例,如果需要同时销毁对象,要在Resize前遍历对应元素调用Destroy()方法

特殊场景:需调用UKismetArrayLibrary的Array_Resize

你在头文件中看到的Array_Resize函数签名里的TArray<int32>参数,只是UE为了适配蓝图泛型函数做的反射占位声明,实际C++调用时支持任意类型的TArray传入,不需要做额外类型转换:

  1. 先引入对应头文件:
#include "Kismet/KismetArrayLibrary.h"
  1. 直接调用函数即可:
// 第一个参数传入你的TArray<AItem*>数组,第二个参数为目标大小
UKismetArrayLibrary::Array_Resize(Items, 10);

该方法的运行效果和蓝图的Array_Resize、TArray原生Resize完全一致。

内容的提问来源于stack exchange,提问作者neoluna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 16:45:04