私は何か問題を抱えています。それがポインターの私の理解なのか、それとも Unreal 自体なのかわかりません。これが私のコードです
TArray<Anode> nodes;
TActorIterator<Anode> ActorItr = TActorIterator< Anode >(GetWorld());
while (ActorItr) //Go through EVERY Node and check distance
{
if (this->GetUniqueID() != ActorItr->GetUniqueID())
{
//Check Distance
if (FVector::DistSquared(this->GetActorLocation(), ActorItr->GetActorLocation()) < 262144) //Check the distance between the two nodes.
{
Anode node = ActorItr;
//Anode* node = Cast<Anode>(*ActorItr);
nodes.Add(node); //Calls a error because
//cannot convert from 'TActorIterator<Anode>' to 'Anode'
}
}
}
}
したがって、私の問題は、Actor Iterator を TArray に変換できないことです。また、逆参照などをいじりました。コンパイルすることはできましたが、実行時にクラッシュしました。ありがとう!
編集:明確にするために
私が試してみました
Anode node = *ActorItr;
しかし、エラー C2440: 'initializing' : cannot convert from 'Anode *' to 'Anode' が発生しました。私はそれから試しました
Anode *node = *ActorItr;
nodes.Add(*node);
コンパイルしましたが、未処理のメモリなどで実行時エラーが発生しました。これは、問題を処理せずに TArray へのポインターを渡すだけだからだと思います (そうですか?)。私が感じている概念は理解していますが、構文は理解していません。