一.先来看官方文档如何描述,写的通俗易懂。直接些测试代码
Append 能一次加多个,注意可能要换成UE_ARRAY_COUNT 算要加的数组的大小。
AddUnique()只会添加没有的,独一无二的。
Insert 插到指定下标。0,1,2,3
SetNum设置容器元素数量,没有的用元素类型默认构造,多的就移除。
二.测试代码
UCLASS()
class NETPRACTICE_API AWXTArrayActor : public AActor
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable)
void AddStructArray();
UFUNCTION(BlueprintCallable)
void EmplaceArray();
UFUNCTION(BlueprintCallable)
TArray<FString> AppendStrArray();
UFUNCTION(BlueprintCallable)
void AddUniqueString();
UFUNCTION(BlueprintCallable)
void InsertString();
UFUNCTION(BlueprintCallable)
void SetStringNum();
// Sets default values for this actor's properties
AWXTArrayActor();
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
UPROPERTY()
TArray<FXGAddStructInfo> StructArray;
};
void AWXTArrayActor::AddStructArray()
{
StructArray.Add(100);
}
void AWXTArrayActor::EmplaceArray()
{
StructArray.Emplace(200);
}
TArray<FString> AWXTArrayActor::AppendStrArray()
{
FString Arr[] = {TEXT("of"),TEXT("Futrue")};
TArray<FString> StrArr;
StrArr.Add(TEXT("Hello"));
StrArr.Emplace(TEXT("World"));
StrArr.Append(Arr,UE_ARRAY_COUNT(Arr));
return StrArr;
}
void AWXTArrayActor::AddUniqueString()
{
TArray<FString> StrArr = AppendStrArray();
StrArr.AddUnique(TEXT("!"));
StrArr.AddUnique(TEXT("!"));
}
void AWXTArrayActor::InsertString()
{
TArray<FString> StrArr = { "Hello","Baby","Fuck" };
StrArr.Insert(TEXT("What"),2);
}
void AWXTArrayActor::SetStringNum()
{
TArray<FString> StrArr = { "Hello","Baby","Fuck" };
StrArr.SetNum(10);
StrArr.SetNum(5);
}
在蓝图中测试,去编辑器代码。查看