Pending Kill Error

  • Servus ,


    Ich arbeite an einem RTS Projekt und stoße auf einen Error log sobald ich ein Haus in die Welt setzte. Es kommt ein pending Kill error der mich im Eventgraph zu SetActorLocation führt. Ich habe leider keine Idee wie ich den Error beheben kann. Ich hoffe das mir jemand im Forum eventuell helfen kann. Wenn weiter Bilder oder Video benötigt werden füge ich gerne mehr ein.


    Mfg

    DerThump

  • Du solltest wenn du an der Code/BP stelle nicht 100% sicher sein kannst, dass in der Variable auch etwas ungleich NULL steht immer zuerst prüfen ob der Inhalt der Variable Valide ist.

    Dazu kannst du den IsValid-Node nutzen. Davon gibt es 2 Varianten. Eine gibt einen Bool zurück, eine ist direkt ein Branch. Den letzteren würde ich eher empfehlen, da du so sicherstellst, dass der Execution Path klarer ist.


    Is Valid checkt ob eine Objekt variable nicht Null ist, oder der inhalt nicht auf "pending Kill" gesetzt ist und demnächst vom Garbage Collector gekillt wird.


    Wie du dann vorgehst ist dir überlassen. Du musst festlegen was passieren soll, daher auch die Fehlermeldung. Dazu hast du folgende Möglichkeiten:

    a) Die Ausführung der Funktion endet beim Fehlschlag. Dies ist sinnvoll wenn die Ausführung ohne validen inhalt keinen Sinn ergibt.

    b) Der Grund des Fehlers wird behoben. D.h. wenn z.B. eine Objekt Variable die geprüft wurde nicht Valid ist, dann könnte man ja einfach ein neues Spawnen und dann weiter machen. (Macht natürlich nicht immer sinn)

    c) Man geht über auf eine Ersatzlösung die das Objekt nicht benötigt. (Vielleicht gibt es ja eine andere Lösung oder eine Approximation)

    d) Man kommt in einen ganz anderen Pfad. Dies ist sinnvoll wenn die Validität das verhalten der Funktion grundlegend beeinflussen soll.

    e) Es wird ein Fehler ausgespuckt, am besten mit einer Fehlermeldung die genügend Informationen hergibt um das Bug Hunting so einfach wie möglich zu machen. (In der Releaseversion gibt es die Meldung nicht.) Kleiner Tipp: Je kritischer der Fehler desto nerviger muss es sein, damit man auch einen Anreiz hat den Bug zu fixen. (Hab aber auch mal mit Experten zu tun gehabt, die das ganze fixen indem sie die Fehlermeldung raus programmieren, Problem war natürlich, dass der Bug nicht weg ist ...)


    Bei deinem Problem kann ich mir vorstellen, dass du Ghost Building nicht vernünftig gesetzt hast, bzw. die RTS Cam versucht auf GhostBuilding zuzugreifen, nach dem es zerstört wurde, aber noch kein neues Ghost Building gespawnt wurde.