Von Actor Component Casten

  • Hallöchen, melde mich nach langer Zeit mal wieder mit einer Frage. Manche werden vielleicht schmunzeln, aber ich bin ehrlich gesagt zu faul zum herumprobieren. *dead*


    Ich habe einen Actor(Charakter). Dieser erhält einen ActorComponent in welchem alle Playerstats(Stärke, Ausdauer, etc... drinnen sind und auch berechnet werden sollen). Dazu würde ich gerne einen zweiten ActorComponent erstellen in welchem ich Fertigkeiten (Schwerter benutzen, Äxte benutzen, etc) drinnen sind. Da ich nicht beides in einem Actor Component nutzen möchte, da Kreaturen (anderer Actor) den zweiten Actor Component nicht erhalten werden, sondern nur Charaktere, hätte ich nun die Frage wie ich am besten von dem ersten Actor Component zum zweiten casten soll um dessen Werte ebenfalls in die Berechnungen aufzunehmen.

    Ziel soll es sein, im ersten Component Schaden und Lebenspunkte, etc.. mithilfe von Stats zu berechnen und im zweiten Component möchte ich gerne diese Stats weiter berechnen mit anderen Fertigkeiten(Variablen) und diese wieder an den Actor schicken.

    Ich dachte ich könnte im ersten Component einen Cast machen zum zweiten Component, weiß aber nicht was dann in den Object -Pin des Cast gehört. Und was mache ich, wenn es sich bei dem Actor dann nicht um einen Charakter sondern eben um eine Kreatur handelt, welches den zweiten Component gar nicht benutzt? Mit einem Branch, welches fragt, ob der Component genutzt wird oder nicht?

    Und ja es soll ein RPG werden.

    Ich danke im Voraus für die Mithilfe und wünsche euch noch einen schönen Tag, Ciao

  • Hey,

    das Problem mit dem Casten und dem passendem Object habe ich auch recht häufig. Manchmal bekomme ich es hin richtig auf mein entsprechendes BP zu Referenzieren.

    Was du nun machen kannst ist die "GetActorOfClass" Node zu nutzen, hierbei muss dein Component aber in der Welt bestehen damit er dies so finden kann. Anschließend kannst du wiegehabt bei dem Return Value deine Variabeln/functions abrufen (Ist wie beim Cast) Es gibt übrigens noch die Node "GetAllActorsOfClass", bei dieser sollte man es vermeiden sie zu oft zu benutzen. Desto mehr du das verwendest, desto mehr muss das ganze berechnet werden (Er geht hier immer alles von vorne durch)

    Bezüglich deiner Kreatur/Player kannst du das ganze mit deinem Player Controller lösen. Alle Möglichen Funktionen wie Leben und co im Controller berechnen. Deine Kreatur wird hier ja einen anderen Controller bekommen (meist etwas wie AIC_Kreatur/AI_Controller...)

    Wenn du jedoch unbedingt deine Berechnungen im Charakter machen willst, gibt es noch die Möglichkeit einen Branch zu nutzen mit "IsPlayerControlled" (Hierbei würde ich aber nochmals Informieren, müsste das selber nochmals ausprobieren und Testen)

    Hoffe ich konnte so irgendwie weiterhelfen. Andernfalls bitte ich um Korrektur wenn ich hier Blödsinn erkläre

    Lg :)

  • Danke Smily für die rasche Hilfe. Ja, hab gar nicht daran gedacht, dass im Player zu berechnen. Wollte dass eigentlich im Charakter machen, da ich für die Spielfigur und andere menschliche Charaktere denselben Actor benutze. Ich werde dass einmal ausprobieren.


    Schönen Abend und ein nettes Wochenende

  • Habe ich hinbekommen. Wird sicher noch ein wenig mit der Zeit daran herumgetüfftelt werden müssen, aber zur Zeit läufts. Es funktioniert indem ich Childs nutze und so nachfragen kann ob es sich erstens um den Parent Actor und zweitens um den Childactor handelt. Hatte da irgendwelche andere Probleme die das behinderten.

    Danke euch für die Hilfe, alles Gute, ciao