UE4 Трансляция OtherActor на OnComponentBeginOverlap - PullRequest
0 голосов
/ 10 июля 2020

Я новичок в UE4. Теперь я сталкиваюсь с двумя классами. пешка и класс персонажа. Мой OnComponentBeginOverlap Dynami c находится в заложенном классе. Это означает, что я пытаюсь получить OtherActor из своего пешечного класса. OtherActor должен быть классом ACharacter. Теперь посмотрим на сигнатуру параметра:

void Adenn_pawn::OnOverlapBegin(UPrimitiveComponent* OverlappedComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool FromSweep, const FHitResult& SweepResult)

Посмотрите на второй параметр. он определяет класс AActor, но я не хочу получать доступ к его родительским классам. Я могу использовать функции или свойства AActor. На самом деле я хочу использовать ACharacter, потому что это класс ACharacter. Любые идеи о приведении этого "OtherActor" в отдельный класс. Или как я могу перейти на подкласс?

Заранее спасибо.

1 Ответ

0 голосов
/ 11 июля 2020

Вы можете попробовать приведение OtherActor к переменной типа ACharacter* с помощью функции Cast. К счастью, функция проверит, имеет ли перекрывающийся актер тип ACharacter, поэтому это полезно, когда вы не уверены, что OtherActor имеет тип ACharacter. Вы можете вызвать функцию Cast и делать то, что вы sh, с выбранным актером, например,

if (ACharacter* OtherCharacter = Cast<ACharacter>(OtherActor))
{
    // do stuff with OtherCharacter
}
else
{
    // OtherActor does not point to an object of type ACharacter
}
...