Warum Funktioniert dieser Code nicht?
Der Code ist ein Movement Skript für den Spieler, der code soll erkennen wenn er ein Objekt mit der Layer "Actor" oder "Blocking" berührt und die Bewegung in diese Richtung stoppen. Wenn ich das Programm starte bewegt sich der Spieler erst nicht, weil er die Layer "Actor" hat und mit sich selbst kollidiert, wenn ich jedoch als Test ihm eine andere Layer zuteile funktioniert der code so wie soll jedoch nur wenn ich die Objekte von Rechts nach links berühre, von oben nach unten und von unten nach oben und von Links nach rechts bleibt der Spieler in dem Objekt stecken und kann sich in keine Richtung mehr bewegen.
Dann hab ich in den Projekt Settings unter Physics 2D "Queries Start in Colliders" deaktiviert das der Spieler nicht mit sich selbst kollidiert. Wenn ich jetzt das spiel starte mit der Layer "Actor" auf dem Spieler funktioniert es wieder wie es soll jedoch wieder nur wenn ich von rechts nach links das Objekt berühre, von allen anderen Seiten kann ich durchlaufen!
Der Code:
Hoffe das Bild ist groß genug um es zu erkennen (wenn es unerkennbar ist lade ich sofort eines mit besserer Qualität hoch!)
Habe jetzt gerade herausgefunden das wenn ich beim Movement das "*movementSpeed" herauslösche es funktioniert! Jedoch läuft der Spieler jetzt extrem Langsam, weiß jemand wie ich den Speed anpassen kann ohne diesen Bug zu haben?
1 Antwort
Du fragst ja nur ab, ob ein Collider null ist. Aber was ist, wenn er eben nicht null ist? Richtig, dann passiert genau das was eben passiert, nichts!
Zu dem verwundert mich der Aufbau ein wenig. Wie sieht denn dein Collider Aufbau aus? Warum nutzt du nicht simples Raycasting?
Wenn der Colider nicht null ist soll ja nicht passieren, der Spieler soll sich in der Achse nicht mehr bewegen! Jedoch hab ich ebene dieses Problem bereits gelöst und ein anderes Problem (steht unter dem Bild)