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?

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.


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.