Event Handling C++

  • Hey zusammen,


    meine AI-Entwicklung läuft langsam aber stetig =P Bin dann seitdem ich meinen neuen PC habe auch von BPs wieder auf C++ umgestiegen und komme ganz gut zurecht ... =) C++ ist schon toll^^


    Nun zu meinem Problem ... in den BPs hat man bei der AI "MoveTo" Komponente des AICOntrollers die Möglichkeit ein Event zu binden, das auslöst, wenn die AI am Zielort angekommen ist. Das Ganze versuche ich nun seit paar Stunden in C++ zu realisieren ... aber so richtig will das bei mir nicht. Die Delegates sind auch wieder eine Sache für sich (wenn man keine Ahnung davon hat).


    Hier mal mein Code:



    Meine Hoffnung ist durch " AIOwner->OnMoveCompleted.AddDynamic(this, &UBTTWorkMission::FinishedMoving);" meine entsprechende Funktion auszuführen, sobald meine "AIOwner->MoveToLocation(loc);" abgeschlossen ist.


    Alles klappt auch soweit, die AI bewegt sich zum Zielort, das Event wird nur nicht ausgelöst ... und achja ich kriege bei dem oben genannten AddDynamic-Versuch folgende Fehlermeldung:


    Error D:\repos\gitlab\JinxedDeadlyEnv\Source\JinxedDeadlyEnv\AI\Routine\BTTWorkMission.cpp(60) : error C2228: left of '.__Internal_AddDynamic' must have class/struct/union


    Vll. kennt sich ja jemand etwas mit den Delegates aus und könnte mir weiterhelfen =P


    Wäre sehr, sehr dankbar.


    LG

  • Soa, habs selber doch noch geschafft =D


    C
    TScriptDelegate<FWeakObjectPtr> MovementComplete; 
    const FName name = "FinishedMoving"; 
    MovementComplete.BindUFunction(this, name); AIOwner->ReceiveMoveCompleted.Add(MovementComplete);

    Habe AddDynamic mit dem og. ersetzt und nun klappt es wunderbar =)