Problem, Respawn nach Fall durch Killzone?

  • Hallo, es geht um einen 2DBreakout Clone. Mein Ball(BallTest2) spawnt automatisch an einem Sockel meines Players(Paddel). Wenn ich dann eine Taste drücke zerstört er den Ball(BallTest3) (Actor mit MovementComponente aus) und spawnt einen anderen Ball(neuerActor mit Movement Componente an).Dieser fliegt dann auch durch die Gegend. Soweit alles gut.
    Erste Frage dazu: Wie kann ich die MovementComponente direkt an und ausstellen? So das ich nicht extra Ball(BallTest3) spawnen muss sondern nochmal Ball(BallTest2) Spawnen kann nur halt mit MovementComponente an) ?


    Wenn ich nun diesen Ball durchlasse landet er in einer KillZone und wird auch zerstört.


    Zweite Frage: Wie kann ich nach dem zerstören einen neuen (BallTest2)Spawnen so das es von vorne beginnt?


    Mit der EventDestroyed Variante Passiert nichts?


    Hier mal das Bild.

  • Da das mit der Killzone nicht geklappt hat habe ich es nun mit einer Trigger Box realisiert.


    Auf die erste Frage würde ich gerne noch eine Antwort bekommen.
    Auch Verbesserungsvorschläge sind willkommen.


    Hier mal das Endergebnis. Padel spawnt mit Ball, bei Tastendruck zerstört er den ersten Ball und spawnt den zweiten Ball mit Movement sodass der Ball sich bewegt.
    Landet er nun im Trigger wird er zerstört und alles beginnt von vorne.


    Hier noch das Blueprint.


  • Du kannst einzelne Komponenten mit der SetActive Funktion aktivieren/deaktivieren.
    Wie das bei ProjectileMovement funktioniert siehst du im Anhang. Das sollte analog dazu auch für deine Komponente funktionieren.


    Weitere Anmerkung:
    Die Verknüpfung von dem "SpawnActor" Knoten aus dem "Event Destroyed" Block mit dem "DestroyActor" Knoten aus dem anderen Event würde ich nicht mischen. Das finde ich verwirrend und gefährlich, da für mich die möglichen Werte nicht ganz klar sind. Du benutzt den Rückgabewert eines Knotens, der an dieser Stelle überhaupt nicht ausgeführt wird.
    Vorschlag stattdessen: Speichere den aktuell aktiven Ball als Variable nach dem spawnen. Später kannst du dann auf diese Variable wieder zugreifen.

  • Danke für deine Antwort, die Spawn Geschichte befindet sich in meinem Player Blueprint , ich müsste aber die MovementComponent von meinem Ball Blueprint an und ausstellen.Ich kann die ja da nicht auswählen.
    Da weiss ich leider nicht wie.
    Und das mit der Variablen ,meinst du so wie jetzt aufm dem Bild? Sieht auf jeden Fall besser aus, danke Dir.



  • Das mit der Variable gefällt mir besser so.


    Mein Vorschlag für eine saubere Lösung wäre folgendes:
    * Deaktiviere die Movement Komponente des Balls von Anfang an (sollte eine Checkbox dafür geben)
    * Erweitere deinen Ball um eine neue Methode "ReleaseBall" (oder so ähnlich), die die Komponente aktiviert
    * Rufe vom Spieler BP aus diese Funktion auf dem Ball auf, sobald du ihn loslassen willst


    Alternativ kannst du auch einfach auf die Komponente zugreifen, wenn du eine Linie vom Ball wegziehst und da "Get BlaBla Component" aufrufst.

  • MovementKomponente ist Anfangs deaktiviert bei Ball2 .


    Da muss ich mich erstmal belesen, aber nun weiss ich das sowas über Funktionen geht. Hab nun mal 2 erstellt aber die wollen ja dann im Player BP auch nen Target haben.





  • Ist Test dein Player Blueprint ?
    Wird die F Taste noch wo anders verwendet ?


    Versuche mal Enable Inputs mit ins BeginPlay zu packen oder in einen Tick wenns sein muss.
    Wenn du die Taste sonst noch verwendest müssen wir da noch andere Sachen einstellen, dann funktioniert auch die F Taste wieder

  • Da gibt es wohl noch ein Problem :(.


    Also es Spawnt der Ball, dann kann ich ihn mit F starten, er fäll in die Trigger Box, wird zerstört und SPAWNT (aber an der falschen Stelle und klebt nicht am Sockel ) kann ihn wieder mit F starten usw.


    Kann einer helfen?



  • Keina Ahnung was du da alles im BP machst.
    Ich kann nicht nachvollziehen woher du die Spawn Location nimmst.


    Ich habe das bei mir so gemacht ... finde das ist einfacher und es funktioniert :)