Woher die Referenz nehmen?

  • Guten Abend,


    ich möchte für mein RTS ein Widget erstellen welches vor dem Bau eines Gebäudes dessen Nutzen erklärt etc.

    Diese Information habe ich im Actor als Variable, aber der existiert ja noch nicht - Ich kann somit auch keine Referenz ziehen, wenn ich mich nicht irre...

    Gibts eine Möglichkeit mit der ich auf den Blueprint und dessen Daten zugreifen kann, ohne dass dieser gespawnt ist?


    Danke schon mal!


    SaDoOx

  • Nein - referenzieren kann man nur auf existierendes. Kannst höchstens unsichtbar - also z.B. unter dem "boden der Map" geheim das model spawnen - ist nicht sichtbar. Und dann darauf referenzieren. Und wenns der User dann doch auswählt heimlich schnell an den vorgesehenen Platz moven.

  • du musst die Referenz auf die Klasse nehmen (lila) und nicht auf eine exestierende Instanz (blau).


    Heißt : in der Funktion verwendest du dann get Classdefaults (Gebäude) -> Infotext.


    oder


    ich würde sowieso immer empfehlen, mit einer BaseKlasse zu arbeiten, welche die Logic enthält.


    z.B. Base-Item. enthält Item-Info. Dann leitest du alle Items von Base-Item ab. und alle Items haben die Funktion get-Item-Info.

  • kyodai das wäre für mich eher eine Art von Workaround den ich semi-optimal finde ; ) Aber im absoluten Notfall werd ich das wohl machen müssen...



    Soap Okay, das hatte ich bereits versucht, jedoch bekomme ich scheinbar nicht alle Variablen aus der Class heraus.


    Beispielsweise habe ich eine "Texture 2D" Variable im Actor, welche keinen Pin im "Get class defaults" node bekommt.

  • SaDoOx Ah ja das Problem hatte ich auch für Items im HUD. Also Bauobjekte.


    In dem Falle habe ich die Texturen in einen datatable gelegt und diese wird dann anhand des Namens = Rowname herausgesucht. Fand ich zwar auch etwas nervig, da man dann leider nicht alle Attribute in der eigentliche Klasse hat. und wenn man den Namen eines Objektes ändert, muss man dran denken, dies im DataTable ebenfalls zu tun.


    Texturen müssen scheinbar instanziiert sein, um auf diese zugreifen zu können.

  • Ich würde hier noch einen Schritt weiter gehen und alle Daten in einem DataTable ablegen.

    Aber Variable Daten kann man nicht ablegen.

    Also ne "konstante" wie z.B. der Name/2dTexture bspw. ok.

    Aber Variablen kannste ja nicht in nem Table speichern. Also variable Werte z.B. Ist-HP, Owner, etc..

    Diese müssen so oder so in der jeweiligen Klasse dann hinterlegt werden.


    Also Konstante Werte (Name, Textur, Kosten, Dropable?, etc.) kann man schön und easy im Table machen. Aber Variablen eben nicht. Diese werden ja verändert und können daher nicht in einer statischen/konstanten Liste sein.