Jump to content
Unity Insider Forum

Tron-Game KI / AI


Buttermilch

Recommended Posts

Hallo zusammen,

ich bin derzeit dabei ein Tron-Game zu entwickeln. Bin nun allerdings bei der KI hängen geblieben.

Mein Ansatz war, jeweils vor dem KI-Objekt mit Raycasts zu prüfen, ob etwas mit dem Tag "Border" oder mit dem Namen "Wall" anfängt. Wenn ja, dann soll mit weiteren Raycasts nach rechts und links geprüft werden, in welche Richtung die AI sich bewegen kann. 

Falls gar nichts getroffen wird von den Raycasts, kann die KI sich in eine zufällige Richtung bewegen.

So weit so gut. Allerdings klappt das ganze Raycast-Gedöns nicht. Ich führe das ganze in der Update-Methode aus und habe schon gelesen, dass das zu Fehlern führen kann bzw. nicht Richtig funktioniert. Habe auch schon versucht eine Art Cooldown einzufügen, z.B. alle 0,2 Sekunden soll die KI Raycasts losschicken. Aber das hat auch nichts geändert.

Also im Moment fährt meine KI gerade aus und gegen eine Wand ^^. Hier mal mein Ansatz als Code: https://pastebin.com/vRihDrhz

Hier meine Raycasts (Gelbe Linien):

qCr9Ql1.png

Vielleicht habt ihr ja bessere Ansätze. :)

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Minuten schrieb Buttermilch:

Ich führe das ganze in der Update-Methode aus und habe schon gelesen, dass das zu Fehlern führen kann bzw. nicht Richtig funktioniert.

Keine Ahnung wo du das her hast, stimmt aber nicht. Wann du einen Raycast ausführst ist egal, der funktioniert immer gleich gut.

Was genau klappt denn nicht?

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 44 Minuten schrieb Sascha:

Keine Ahnung wo du das her hast, stimmt aber nicht. Wann du einen Raycast ausführst ist egal, der funktioniert immer gleich gut.

Was genau klappt denn nicht?

 

Hab das mal in irgendeinem Forum aufgeschnappt, weiß aber nicht mehr wo.

Hab gerade mal ein bisschen rumprobiert und gesehen, dass die Bedingung 

if (Physics.Raycast(transform.position, forwardDirection, out hitFoward, VectorLengthForward, layerMask)) {

nicht erfüllt wird. 

Komisch ist bloß, dass wenn ich das Spiel im Editor pausiere kurz bevor der Raycast etwas trifft und dass Spiel dann weiterlaufen lasse, dann wird die Bedingung erfüllt bzw. der Raycast erkannt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 10 Minuten schrieb Sascha:

Also, eine Sache die ich sehe ist, dass du viel zu viele Variablen dauerhaft speicherst. Allem voran leftDirection und rightDirection. Die drehen sich deshalb auch nicht mit, weil sie einmalig am Anfang gesetzt werden.

Vielen Dank! Das war der Fehler... ich glaube ich habe einfach den Überblick verloren bei den ganzen Zeilen. ^^

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...