UDK: Überprüfung des Aktortyps im Projektil ProcessTouch

10

Um es kurz zu machen, ich versuche einen Bauern zu teleportieren, wenn er von einem Projektil getroffen wird (oder von einer Waffe in meinem Spiel beschädigt wird).

Im Moment versuche ich, Pawn.SetLocation im ProcessTouch des Projektils aufzurufen. Das ist ein Problem, weil ProcessTouch jeden Schauspieler trifft, nicht nur einen Bauern. Darüber hinaus führt jeder Versuch, den "Actor Other" von ProcessTouch zu überprüfen, zu Fehlern.

Ich habe eine Reihe von Lösungen ausprobiert (einschließlich der Erstellung eines Ereignisses TakeDamage in der Pawn-Controller-Klasse), aber ohne Erfolg.

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

Dieser Code beschwert sich, dass Pawn ein schlechter Ausdruck ist. Wie soll ich sonst den Schauspielertyp hier überprüfen?

Würfeln
quelle

Antworten:

0

Ich denke, Sie vermissen es, Ihren Bauern wie folgt zu werfen:

if( myDesiredClass(Other) != none)

Überprüfen Sie es und geben Sie mir Feedback, wenn Sie auf ein neues Problem stoßen.

Emadpres
quelle
0

Meiner Meinung nach können Sie dies entweder durch Überprüfen der Klasse tun

Other.class == class'Pawn '

oder durch Casting und Überprüfen, ob es None ist oder nicht

Bauer (Andere)! = Keine

Gabeee
quelle