Bekannte Fehlermeldung im merkwürdigen Zusammenhang

  • Hallo Leute,


    ich bekomme seit neuestem diese Fehlermeldung hier:


    Eigentlich weis ich was zu tun ist. Nämlich an besagter Stelle eine IsValid-Node an die jeweilige Variable hängen. Wenn ich allerdings auf diese Fehlermeldung klicke komme ich hier hin:




    Sorry, aber was ein vollkommener Blödsinn. Nicht nur, das ich diese Fehlermeldung jetzt aus dem nichts bekomme, die Vorher nie da war. Nein, auch die Tatsache, dass das Problem anscheinend die "IsValid"-Node selbst sein soll. Die ja eigentlich dafür zuständig ist diese Fehlermeldung überhaupt zu beseitigen.


    Ist das hier ein Bug?


    Viele Grüße

    Lalilu

  • Guten morgen,

    danke für die schnelle Antwort.


    Das ist das Standard Makro von der Unreal Engine, ja


    Das ist ja gerade das Problem: Ich komme mit diesem klick nicht dahin wo genau der Fehler verursacht wird. Aber ich kann hier einen Ausschnitt zeigen, der immer wieder so vor kommt in diesem Blueprint:



    So mache ich das seit JAHREN. Ich checke ob besagte Referenz noch besteht mit der isValid-Node und alles war bisher in Ordnung.


    Bitte ignoriere das schlechte deutsch, ich weis dass "nahester" völlig daneben ist :D

  • Da hilft nur eins. Klemm mal immer nach und nach eine dieser Prüfnodes ab und wenn der Fehler nicht mehr auftaucht, dann weißt du von wo er ausgelöst wird.

    Ich finde das zwar jetzt auch ein etwas ungewöhnliches Verhalten für die Engine, also steckt da vielleicht auch etwas ganz anderes dahinter, aber Debugging kann schon eine echte Bitch sein. Und da der Fehler, bzw. die Anzeige, wo er sein soll, so ungewöhnlich ist, kann ich dir da natürlich auch keine Standardantwort geben, zumindest hatte ich das auch noch nicht. Höchstens halt so nach und nach alles auszuschließen, per abklemmen, was den Fehler nicht verursacht. Oder hast du vielleicht auch irgendwo die Objektverknüpfung nicht gemacht, dass er sich da so merkwürdig verhält?

    Ich wette, wenn du den Fehler gefunden hast, ist das wieder so eine "flache Hand an die Stirn hau" Situation.

  • Ich glaube, ich habe es. Bin mir aber nicht ganz sicher. Also zumindest habe ich eine kleine Idee.

    Kann es sein, dass du aus einer Arrayliste oder ähnliches diese Validabfrage machst?

    Weil, Valid prüft ja auf ein Objekt. Objekt ist in der Unreal Engine ja erstmal alles, denn von Objekt wird alles abgeleitet. Aber, kann es sein, dass dein Array leer ist oder zumindest leere Einträge, Lücken oder ähnliches hat?

    Ups, sehe gerad, ist natürlich kein Array. Aber kann es sein, dass die Variable schlicht leer ist, als dass nichts wirklich übergeben wird?

    • Offizieller Beitrag

    Sorry, aber was ein vollkommener Blödsinn. Nicht nur, das ich diese Fehlermeldung jetzt aus dem nichts bekomme, die Vorher nie da war. Nein, auch die Tatsache, dass das Problem anscheinend die "IsValid"-Node selbst sein soll. Die ja eigentlich dafür zuständig ist diese Fehlermeldung überhaupt zu beseitigen.

    Ich glaube dein Problem ist, dass du eine nicht Initialisierte Variable hast.


    Eine leere Variable ist nicht zwangsläufig das selbe wie eine Variable mit 0


    Bei vielen Programmiersprachen werden Variablen standardmäßig mit einem bestimmten Wert initialisiert. Der Wert wird häufig als "Null" bezeichnet. Das heißt aber nicht, das der Value = 0 ist ^^

    Er wird zwar als 0 Wert bezeichnet ist aber nicht 0 als Value. (Äh ich hoffe verstehst was ich meine)



    Es kann sein, dieses Problem nur bei bestimmten Variablentypen auftaucht. (Klassenvariablen, Lokale Variablen, Methoden, oder Funktionen.

    Wenn auf die Variable zugegriffen wird oder dass Ihr vorher ein (Gültiger) Wert zugewiesen wurde, dann kommt es zu einem Fehler.


    Probiere doch mal folgendes: Beim starten des Levels setze die Variable Manuell auf den Wert der drin sein müsste.

    Dann verursachst du einen ISValid und einen ISNOTValid.



    Ich hoffe dann ist es klarer.


    Bitte ignoriere das schlechte deutsch, ich weis dass "nahester" völlig daneben ist :D

    Es ist Klug Umlaute zu vermeiden. :thumbup:

  • nicht Initialisierte Variable

    Das war das Wort, welches ich die ganze Zeit gesucht habe. Wobei ich mir gar nicht mehr so sicher bin, ob man in BP eine nicht initialisierte Variable erstellen kann, denn den Typ muss man ja immer angeben. Im Zweifelsfall ist sie per Default halt auf Boolean.

    Trotzdem würde ich irgendetwas in der Richtung vermuten.