UE4嶄議強蓑方怏?TArray否匂
<貧匯准
和匯准>
葎焚担聞喘UE4戻工議否匂窃?
泌惚低喘狛C++議STL垂?低祥岑祇STL戻工阻光嶽光劔議否匂/方象潤更?聞誼低斤侃尖載謹方象議扮昨掲械酔楯互丼。UE4揖劔匆戻工阻窃貌議垂?垂戦中議窃侏頁參T蝕遊議?聞喘UE4戻工議否匂垂辛參厚挫仇糞孖睡峠岬。侭參壓UE4序佩蝕窟議扮昨厘断載富肇聞喘STL否匂?厚謹扮昨頁聞喘UE4戻工議否匂。
TArray<T>嶄侭嗤方象圷殆脅頁T窃侏議?咀緩音嬬詞栽光嶽音揖窃侏議圷殆序肇宸倖否匂。TArray短嗤譜柴撹瓜写覚議?侭參音哘乎肇写覚万。旺拝new/delete匯倖TArray頁裡孁議佩葎。輝TArray議伏凋巓豚潤崩扮?階竃恬喘囃??否匂戦中議侭嗤圷殆匆氏瓜?支。輝低貫総匯倖TArray幹秀匯倖仟議TArray氏鹸崙侭嗤方象圷殆欺仟議延楚?遇音氏慌峴宸乂圷殆議坪贋。
壓貧中議幣箭嶄?Add幹秀阻匯倖FString匝扮延楚?隼朔勧弓公方怏?壓方怏坪何壅肝距喘申唄更夛痕方栖鹸崙宸倖FString匝扮延楚。徽頁Emplace聞喘阻C++11議嘔峙哈喘室宝?万音氏更夛匝扮延楚?遇頁壓方怏坪何聞喘宸倖忖憲堪械楚栖幹秀FString延楚。咀緩?喇噐Emplace富阻匯肝申唄更夛痕方荷恬?侭參Emplace氏曳FString互丼。徽頁喇噐Add曳Emplace厚醤辛響來?泌惚頁噸宥議C++坪崔窃侏?音氏嗤申唄更夛痕方議賞寄蝕???秀咏聞喘Add。
廣吭?耽肝距編嬉咫議佚連脅壓圻栖議距編佚連貧中?侭參方怏戦中議坪否卆肝頁1、3、7?遇音頁7、3、1。
泌惚低喘狛C++議STL垂?低祥岑祇STL戻工阻光嶽光劔議否匂/方象潤更?聞誼低斤侃尖載謹方象議扮昨掲械酔楯互丼。UE4揖劔匆戻工阻窃貌議垂?垂戦中議窃侏頁參T蝕遊議?聞喘UE4戻工議否匂垂辛參厚挫仇糞孖睡峠岬。侭參壓UE4序佩蝕窟議扮昨厘断載富肇聞喘STL否匂?厚謹扮昨頁聞喘UE4戻工議否匂。
匯、TArray<T>頁焚担
泌惚低僥狛C++議庁医?低祥岑祇TArray<T>頁匯倖庁医窃侏?T頁喇厘断峺協議販吭窃侏。曳泌低?幹秀匯倖方怏圷殆脅頁int窃侏議強蓑方怏?椎担宸倖方怏窃侏祥頁TArray<int>?窃貌議?低辛參幹秀TArray<double>、TArray<FString>吉吉?T封崛頁辛參頁低徭失幹秀議C++窃。TArray<T>嶄侭嗤方象圷殆脅頁T窃侏議?咀緩音嬬詞栽光嶽音揖窃侏議圷殆序肇宸倖否匂。TArray短嗤譜柴撹瓜写覚議?侭參音哘乎肇写覚万。旺拝new/delete匯倖TArray頁裡孁議佩葎。輝TArray議伏凋巓豚潤崩扮?階竃恬喘囃??否匂戦中議侭嗤圷殆匆氏瓜?支。輝低貫総匯倖TArray幹秀匯倖仟議TArray氏鹸崙侭嗤方象圷殆欺仟議延楚?遇音氏慌峴宸乂圷殆議坪贋。
屈、幹秀強蓑方怏
葎阻幹秀匯倖強蓑方怏?低辛參宸劔亟?TArray<int32> IntArray;
廣吭?int32頁32了屁侘?遇int氏功象字匂音揖遇忖准音揖?侭參葎阻睡峠岬秀咏聞喘int32。宸扮昨?咀葎厘断短嗤方象野割欺乎方怏戦中?侭參珊短嗤坪贋瓜蛍塘。
眉、野割強蓑方怏
1) TArray::Init
壓UE4議郊圭猟亀辛參心欺乎痕方議蕗苧?void Init(const ElementType & Element, int32 Number)乎痕方喘噐譜崔方怏葎Number倖?旺拝耽倖圷殆峙議葎Element?箭泌?
IntArray.Init(10, 5); // IntArray == [10,10,10,10,10]
2) TArray::Add
枠栖心乎痕方議蕗苧?int32 Add( const ElementType & Item)乎痕方喘噐耶紗仟圷殆欺強蓑方怏挑硫。
3) TArray::Emplace
枠栖心乎痕方議蕗苧?template<typename... ArgsType> int32 Emplace( ArgsType &&... Args)乎痕方匆頁喘噐耶紗仟圷殆欺強蓑方怏挑硫。幣箭?
TArray<FString> StrArr;
StrArr.Add(TEXT("Hello"));
StrArr.Emplace(TEXT("World"));
// StrArr == ["Hello","World"]
埋隼Add才Emplace脅頁耶紗仟圷殆欺強蓑方怏挑硫?音狛万断議坪何糞孖頁音揖議?
- Add氏鹸崙圷殆欺方怏否匂戦中
- Emplace聞喘低公議歌方栖更夛匯倖仟議圷殆窃侏議糞箭
壓貧中議幣箭嶄?Add幹秀阻匯倖FString匝扮延楚?隼朔勧弓公方怏?壓方怏坪何壅肝距喘申唄更夛痕方栖鹸崙宸倖FString匝扮延楚。徽頁Emplace聞喘阻C++11議嘔峙哈喘室宝?万音氏更夛匝扮延楚?遇頁壓方怏坪何聞喘宸倖忖憲堪械楚栖幹秀FString延楚。咀緩?喇噐Emplace富阻匯肝申唄更夛痕方荷恬?侭參Emplace氏曳FString互丼。徽頁喇噐Add曳Emplace厚醤辛響來?泌惚頁噸宥議C++坪崔窃侏?音氏嗤申唄更夛痕方議賞寄蝕???秀咏聞喘Add。
4) TArray::Push
TArray::Push戻工阻曾倖匯劔孔嬬議嶷墮痕方辛參蛍艶旗紋Add才Emplace。侭參涙胎採扮聞喘Push曳Add才Emplace厚紗圭宴阻?void Push( const ElementType & Item ) void Push( ElementType && Item )
膨、亨旗強蓑方怏
宥械亨旗脅崛富嗤曾嶽圭塀?匯嶽頁聞喘沫哈?匯嶽頁聞喘亨旗匂。1) 聞喘沫哈亨旗強蓑方怏
葎阻膳楼厘断議方怏?厘断辛參壓真除NPC議痕方嶄嬉咫乎方怏。厘断繍ANPC::Prox_Implementation俐個撹泌和旗鷹?
void ANPC::Prox_Implementation(
AActor* otherActor,
UPrimitiveComponent* otherComp,
int32 otherBodyIndex,
bool bFromSweep,
const FHitResult & sweepResult
){
//宥狛膿崙廬算撹AAVatar頁倦撹孔栖登僅頁倦螺社叔弼
if (Cast<AAvatar>(otherActor) == nullptr)
{
return;
}
//資誼及匯繁各陣崙匂
APlayerController* PController = GetWorld()->GetFirstPlayerController();
if (PController)
{
//資誼HUD順中
AMyHUD* hud = Cast<AMyHUD>(PController->GetHUD());
hud->AddMessage(Message(NpcMessage, 5.f, FColor::White));
//霞編方怏
TArray<int> array;
array.Push(1);
array.Push(3);
array.Push(7);
for (int index = 0; index < array.Num(); index++)
{
//GEngine頁畠蕉哈陪延楚?厘断聞喘万議AddOnScreenDebugMessage痕方栖壓嗄老徳鳥貧嬉咫距編佚連。
//乎痕方及匯倖歌方頁距編補竃議了崔?野亟-1燕幣悳壓圻栖議距編佚連貧圭。
//及屈倖歌方頁忖悶寄弌?及眉倖歌方頁忖悶冲弼?及膨倖歌方頁勣嬉咫議忖憲堪?宸戦喘FromInt痕方繍Int廬算FString。
GEngine->AddOnScreenDebugMessage(-1, 40, FColor::White, FString::FromInt(array[index]));
}
}
}
廣吭?耽肝距編嬉咫議佚連脅壓圻栖議距編佚連貧中?侭參方怏戦中議坪否卆肝頁1、3、7?遇音頁7、3、1。
2) 聞喘亨旗匂儉桟方怏
void ANPC::Prox_Implementation(
AActor* otherActor,
UPrimitiveComponent* otherComp,
int32 otherBodyIndex,
bool bFromSweep,
const FHitResult & sweepResult
){
//宥狛膿崙廬算撹AAVatar頁倦撹孔栖登僅頁倦螺社叔弼
if (Cast<AAvatar>(otherActor) == nullptr){
return;
}
//資誼及匯繁各陣崙匂
APlayerController* PController = GetWorld()->GetFirstPlayerController();
if (PController)
{
//資誼HUD順中
AMyHUD* hud = Cast<AMyHUD>(PController->GetHUD());
hud->AddMessage(Message(NpcMessage, 5.f, FColor::White));
//霞編方怏
TArray<int> array;
array.Push(1);
array.Push(3);
array.Push(7);
//壓聞喘否匂議扮昨?葎阻否匂議荷恬匯崑來?宥械脅氏崧和中宸劔聞喘亨旗匂栖儉桟
//侭僚議亨旗匂凪糞窃貌噐匯倖峺寞?輝斤峺寞序佩++扮?祥峺?朔中議圷殆。
//輝階竃否匂袈律議扮昨?亨旗匂葎腎?柳竃儉桟
for (TArray<int>::TIterator it = array.CreateIterator(); it; ++it)
{
//GEngine頁畠蕉哈陪延楚?厘断聞喘万議AddOnScreenDebugMessage痕方栖壓嗄老徳鳥貧嬉咫距編佚連。
//乎痕方及匯倖歌方頁距編補竃議了崔?野亟-1祥音氏顕固參念議距編佚連。
//及屈倖歌方頁忖悶寄弌?及眉倖歌方頁忖悶冲弼?及膨倖歌方頁勣嬉咫議忖憲堪?宸戦喘FromInt痕方繍Int廬算FString。
GEngine->AddOnScreenDebugMessage(-1, 40, FColor::White, FString::FromInt(*it));
}
}
}
壓糞縞蝕窟嶄?咀葎聞喘亨旗匂序佩亨旗厚酒準胆鉱?厘断宥械脅氏宸劔序佩亨旗否匂。
<貧匯准
和匯准>