Добрый день.
Нужно переписать данный блок блупринт на С++. Логика такая, что каждый враг, зашедший в радиус башни, попадает в массив этой башни. К примеру, если идет 1 враг по полю, и попадает в поле 4 башен, то в массиве каждой башни будет 1 элемент - этот враг.
С OnComponentBeginOverlap и OnComponentEndOverlap разобрался. Остались два вопроса:
- Как реализовать "Cast To Enemy"?
- Массив в БП состоит из Enemy Object References, как это сделать на C++?
Код:
TArray<AEnemy*> arrayOfEnemy; // Такой массив нужен ?
// На примере входа в коллизию
void ATower::OnOverlapBegin(UPrimitiveComponent * OverlappedComp, AActor * OtherActor, UPrimitiveComponent * OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult & SweepResult)
{
if (OtherActor && (OtherActor != this) && OtherComp)
{
AEnemy *enemy = Cast<AEnemy>(OtherActor); // Правильный ли каст?
this->arrayOfEnemy.Add(enemy);
}
}