УДК: Проверка типа актера в снаряде ProcessTouch


10

Короче говоря, я пытаюсь телепортировать пешку, когда она поражена снарядом (или повреждена любым оружием в моей игре).

Прямо сейчас я пытаюсь просто вызвать Pawn.SetLocation в ProcessTouch снаряда. Это проблема, потому что ProcessTouch поразит любого актера, а не только пешку. Кроме того, любые попытки проверить "Actor Other" в ProcessTouch выдают ошибки.

Я перепробовал несколько решений (включая создание события TakeDamage в классе контроллера Pawn), но безрезультатно.

    simulated function ProcessTouch(Actor Other, Vector HitLocation, Vector HitNormal)
    {
         if (Other != Instigator)
         {
              //This is where the Other.TakeDamage goes if we are using a traditional gun.
              if (Other == Pawn);
              {
                   Other.SetLocation(0,0,0);
              }
         }
    Destroy;
    }

Этот код жалуется, что Пешка плохое выражение. Как еще я должен проверить тип актера здесь?

Ответы:


0

Я думаю, что вы скучаете, чтобы бросить свою пешку как

if( myDesiredClass(Other) != none)

Проверьте это и дайте мне обратную связь, если у вас возникнут новые проблемы.


0

На мой взгляд, вы можете сделать это, проверив класс

Other.class == class'Pawn '

или путем приведения и проверки его, нет ли это или нет

Пешка (Другое)! = Нет

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.