UDK:检查弹丸ProcessTouch中的actor类型


10

因此,简单来说,当一个被投射物击中(或被游戏中的任何武器损坏)的棋子时,我试图将其传送。

现在,我试图在弹丸的ProcessTouch中仅调用Pawn.SetLocation。这是一个问题,因为ProcessTouch会击中任何演员,而不仅仅是典当。此外,任何检查ProcessTouch的“其他演员”的尝试都将引发错误。

我尝试了很多解决方案(包括在Pawn控制器类中创建事件TakeDamage),但无济于事。

    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;
    }

此代码抱怨Pawn的表达不正确。我还应该在这里如何检查演员类型?

Answers:


0

我想您想将您的pawn投射为:

if( myDesiredClass(Other) != none)

检查它,如果您遇到任何新问题,请给我反馈。


0

我认为您可以通过检查课程来做到这一点

Other.class == class'Pawn'

或者通过强制转换并检查是否为无

Pawn(Other)!=无

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.