Warum wird der Raycast bei mir die ganze Zeit als falsch angezeigt und was wäre eine mögliche Lösung des Problems?
Hallo, ich arbeite Momentan an einem Super Mario 2D Spiel mit Unity. Dabei habe ich diesen Code geschrieben: private void Update() { HorizontalMovement(); grounded = rigidbody. Raycast (Vector2.down); if (grounded) { GroundedMovement(); } if (velocity.x > 0f) { transform.eulerAngles = Vector3.zero; } else if (velocity.x < 0f) { transform.eulerAngles = new Vector3(0f, 180f, 0f); } ApplyGravity(); } private void HorizontalMovement() { inputAxis = Input.GetAxis("Horizontal"); velocity.x = Mathf.MoveTowards(velocity.x, inputAxis * moveSpeed, moveSpeed * Time.deltaTime); if (rigidbody. Raycast (Vector2.right * velocity.x)) { velocity.x = 0f; } if (velocity.x > 0f) { transform.eulerAngles = Vector3.zero; } else if (velocity.x < 0f) { transform.eulerAngles = new Vector3(0f, 180f, 0f); } } Dabei habe ich dann das Problem, dass der Raycast(dick gedruckt) immer unterstrichen wird und dabei steht dann: "Rigidbody2D" enthält keine Definition für "Raycast", und es konnte keine zugängliche Raycast-Erweiterunsmethode gefunden werden, die ein erstes Argument vom Typ "Rigidbody2D" akzeptiert (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis). Aufjedenfall weiß ich nicht was ich damit anfangen soll und ich hoffe, dass mir jemand vielleicht ein Verbesserungsvorschlag geben kann. Danke