Box collider funktioniert nicht mit rb.MovePosition?

Ich habe mit Unity angefangen und habe ein kleines problem:
Und zwar habe ich eine kamera mit boxcollider und einen terrain mit terraincollider. Nur leider kann ich die kamera durch das terrain durchschieben! Ich habe schon den verdacht dass es an rb.MovePosition liegt aber weiß nicht wie ich das reparieren kann! Alles wie zumbeispiel rigidbody sind auf der kamera da bin ich mir sicher! Es kommt auch kein Fehler in der Konsole!
Mein Kompletter code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SmoothMove : MonoBehaviour
{
   public float rotationSpeed = 2.0f;
   public float smoothRotationFactor = 5.0f;
   private float yaw = 0.0f;
   private float pitch = 0.0f;

   public float jumpForce = 10.0f;
   public float moveSpeed = 20.0f;
   private Rigidbody rb;
   private bool isMovingForward = false;

   private void Start()
   {
       rb = GetComponent<Rigidbody>();
   }

   private void Update()
   {
       HandleCameraRotation();

       if (Input.GetKeyDown(KeyCode.Space))
       {
           Jump();
       }

       if (Input.GetKeyDown(KeyCode.UpArrow))
       {
           StartMovingForward();
       }

       if (Input.GetKeyUp(KeyCode.UpArrow))
       {
           StopMovingForward();
       }

       if (isMovingForward)
       {
           MoveForward();
       }
   }

   private void HandleCameraRotation()
   {
       if (Input.GetMouseButton(0))
       {
           yaw += rotationSpeed * Input.GetAxis("Mouse X");
           pitch -= rotationSpeed * Input.GetAxis("Mouse Y");
           Quaternion targetRotation = Quaternion.Euler(pitch, yaw, 0.0f);
           transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, Time.deltaTime * smoothRotationFactor);
       }
   }

   private void Jump()
   {
       rb.velocity = new Vector3(rb.velocity.x, rb.velocity.y + 5, rb.velocity.z);
   }

   private void StartMovingForward()
   {
       isMovingForward = true;
   }

   private void StopMovingForward()
   {
       moveSpeed = 20f;
       isMovingForward = false;
   }

   private void MoveForward()
   {
       moveSpeed += 0.1f;
       Vector3 forwardDirection = transform.forward;
       forwardDirection.y = 0.0f; // Keep movement on the horizontal plane
       rb.MovePosition(rb.position + forwardDirection * moveSpeed * Time.deltaTime);
   }
}

Ich würde mich sehr freuen wenn ihr mir helft. Danke :)

C Sharp, Code, Programmiersprache, Spieleentwicklung, Unity 3D, Visual Studio, Unity
Hab heute ein Vorstellungsgespräch gehabt als Junior Softwareentwickler aber fühle mich schlecht?

Moin,

Ich hatte heute n Gespräch und fühle mich Ultra schlecht. Ich hatte mich als Softwareentwickler beworben und es wurde mir Fragen zum Objekt orientierten Programmierung gestellt.

Ich sollte Java Design patterns nennen und kannte keine, weil wir hatten das nicht im Studium. Dann hat mir der gegenüber erklärt, was singleton ist und ich sollte sagen, wie man das in Java umsetzen kann, dass nur eine einzige Instanziierung einer Klasse umgesetzt wird. Ich meinte, man könne halt 'nen Zähler einbauen, der dann reagiert durch den Konstruktor, aber mir ist static nicht eingefallen (ich hatte schonmal damit gecodet und auch sowas in c++ eingebaut).

Dann wurde mir die Frage gestellt, ob in Java und C# Mehrfachvererbung existiert und ich hatte falsch geantwortet. Ich hatte viel mit Javascript gecodet, aber nie mit Typescript. Dann wurde ich halt gefragt, wo die Unterschiede sind, konnte ich auch nicht beantworten.

Ich sitze hier und mache mich selber fertig, kann net ruhig schlafen. Hab jetzt Zeit bis die sich überlegen, ob ich in die nächste Phase komme (Programmierung mit denen zusammen) oder ob kein Bedarf besteht.

Ich hab mir schon vorgenommen, mich über mögliche Interviewfragen besser zu informieren. Aber fühle mich trotzdem sehr schlecht.

Bis jetzt hab ich von 4 Bewerbungen 3 Einladungen bekommen

Test, Arbeit, App, Bewerbung, Job, Java, JavaScript, C Sharp, Programmiersprache, Vorstellungsgespräch
Weirder fehler bei Unity?

hi leute, ich habe mal wieder ein problem (was war auch anderes zu erwarten...) und diesmal handelt es sich um Unity.

die sache ist die, ich habe von unity hub die version 3.5.0 und der unity editor den ich installiert habe ist version Unity 2022.3.7f1.

das tut aber leider nix zur sache, denn egal welche editor version ich nutze, der fehler ist derselbe und jedesmal aufs neue bestehend.

denn das eigentliche problem um was es geht, das mich daran hindert unity zu nutzen ist folgendes: ich öffe unity hub und erstelle ein komplett frisches projekt. ich habe keine vorherigen mehr, da ichdiese alle gelöscht habe.

dann wähle ich 3d projekt aus und warte, bis alle dateien fertig geladen und kopiert wurden (oder was da auch immer passiert) und sobald unit fertig mit laden ist wird der unity editor geöffnet (also wie gewohnt) aber das ganze sieht so aus:

es ist folgendermaßen:

ich klicke auf den x button, es lädt und kurz darauf schließt sich der editor. da einzige was offen bleibt ist der unity hub. wenn ich auf den "Quit" button klicke passiert eins zu eins der selbe mist.

wenn ich jedoch auf den "continue" button klicke lädt es kurz und das selbe erschein erneut. es ist egal wie oft ich auf continue drücke, es erscheint immer wieder dieselbe nachricht.

kennt jemand eine lösung für das problem, wenn ja dann wäre ich euch echt verbunden.

(übrigens habe ich schon versuch unity komplett zu deinstallieren und danach wier neu zu installieren aber das problem besteht noch immer.)

vielen lieben dank im voraus.

Bild zum Beitrag
Windows, C Sharp, Error, Programmiersprache, Spieleentwicklung, Unity 3D, Plattform, Message, Unity, Windows 10
Hallo ich habe ein Code in Unity wo es eine Fehlermeldung gibt die ich nicht verstehe. Könnt ihr mir helfen?

Die Fehlermeldung lautet

Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand

Fehler CS1061 "Animation" enthält keine Definition für "SetBool", und es konnte keine zugängliche SetBool-Erweiterungsmethode gefunden werden, die ein erstes Argument vom Typ "Animation" akzeptiert (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis). Assembly-CSharp C:\Users\Me\2d platform\Assets\Player.cs 27 Aktiv

Der ganze Code ist

public class Player : MonoBehaviour

{

  public float speed = 5;

  private Rigidbody2D rb;

  public float jumph = 5;

  private bool ig =false;

  private Animation anim;

  // Start is called before the first frame update

  void Start()

  {

    rb = GetComponent<Rigidbody2D>();

    anim = GetComponent<Animation>();

  }

  // Update is called once per frame

  void Update()

  {

    float richtung = Input.GetAxis("Horizontal");

    if(richtung != 0)

    {

      anim.SetBool("IsRunning", true);

    }

    else

    {

      anim.SetBool("IsRunning", false);

    }

    transform.Translate(Vector2.right * speed * richtung * Time.deltaTime);

    if (Input.GetKeyDown(KeyCode.Space) && ig)

    {

      rb.AddForce(Vector2.up * jumph, ForceMode2D.Impulse);

      ig = false;

    }

  }

  private void OnCollisionEnter2D(Collision2D collision)

  {

    if(collision.gameObject.tag == "g")

    {

      ig = true;

    }

  }

}

C Sharp, Code, Programmiersprache, Visual Studio, Unity, unity 2d
DialogResult wird nicht erkannt?

Keine Ahnung was da los ist. Quasi den selben code benutze ich in einem anderen Projekt auch und da funktioniert es einwandfrei. Mit einem openFileDialog oder einer MessageBox funktioniert es auch.

Die 2te Form wird über einen button aufgerufen:

private void RenameButton_Click(object sender, EventArgs e)
        {
            using (RenameForm renameForm = new RenameForm())
            {
                if (renameForm.ShowDialog() == DialogResult.OK)
                {
                    //...
                }
                else
                {
                    MessageBox.Show("Test");
                }
            }
        }

Wenn man aber jetzt den button in der 2ten Form drückt wird einem trotzdem die Test MessageBox angezeigt...:

private void btnOK_Click(object sender, EventArgs e)
        {
            NewFileName = textBox1.Text;
            if (string.IsNullOrEmpty(NewFileName))
            {
                MessageBox.Show("Bitte gib einen gültigen Dateinamen ein.", "Ungültiger Dateiname", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }


            this.DialogResult = DialogResult.OK;
        }

Ich freue mich über jede Hilfe die ich kriegen kann.
Ich mach da schon wieder viel zu lange herum.

programmieren, C Sharp, Code, Visual Studio, Windows Forms
Pygame Vampire Survivors?

Hallo ich programmiere gerade ein Spiel in Pygame das dem Spiel Vampire Survivors ähnelt ich habe aktuell das problem das Problem das wenn der spieler auf die Gegner hinzu läuft die Gegener nach hinten verschoben werden staat nach vorn weil.

Also aktuell wenn ich stehe laufen die Gegner auf mich zu.

Und wenn ich von den Gegnern weg laufe werden sie aus dem Screen geschoben.

Aber wenn ich auf sie zu laufe werden sie auch aus dem Screen geschoben.

Obwohl sie dann normal laufen sollen als ob der spieler steth hier der wichtige code:   def update(self, dt, player, screen_width, screen_height):

    if not self.collided_with_enemy and self.is_visible:

      dx = player.x - self.x

      dy = player.y - self.y

      distance = max(1, pygame.math.Vector2(dx, dy).length())

      direction = pygame.math.Vector2(-dx / distance, -dy / distance)

      player_rect = pygame.Rect(player.x, player.y, player.hitbox_width, player.hitbox_height)

      enemy_rect = pygame.Rect(self.x, self.y, self.hitbox_width, self.hitbox_height)

      if player_rect.colliderect(enemy_rect):

        player.handle_collision()

        self.speed = 0

        return

      if dx != 0 and dy != 0:

        dx = 0

        dy = 0

      speed_multiplier = self.speed * dt

      if player.is_moving:

        speed_multiplier *= 0.5

      # Anpassung der Bewegungsrichtung basierend auf dem Spielerstatus

      if player.is_moving:

        self.x -= direction.x * speed_multiplier

        self.y -= direction.y * speed_multiplier

      else:

        self.x += direction.x * speed_multiplier

        self.y += direction.y * speed_multiplier

      self.x = max(-self.hitbox_width, min(self.x, screen_width))

      self.y = max(-self.hitbox_height, min(self.y, screen_height))

      self.animation_timer += dt

      if self.animation_timer >= self.animation_speed:

        self.animation_timer = 0

        self.current_frame = (self.current_frame + 1) % self.animation_frames

      # Anpassung der Geschwindigkeit basierend auf der Bewegungsrichtung des Spielers

      player_direction = pygame.math.Vector2(player.x - self.x, player.y - self.y)

      player_distance = max(1, player_direction.length())

      player_direction = player_direction.normalize()

      dot_product = player_direction.dot(direction)

      if dot_product > 0.5:

        # Spieler bewegt sich dem Gegner entgegen

        self.speed = self.original_speed + 100

      else:

        # Spieler bewegt sich vom Gegner weg

        self.speed = self.original_speed - 100

    else:

      self.x += self.direction * self.speed * dt

      self.collided_with_enemy = False

    for enemy in enemies:

      if check_enemy_collision(player, enemy):

        break

Java, JavaScript, Minecraft, C Sharp, Programmiersprache, Python, Python 3, Unity, Pygame
Wo schlagt ihr nach, wenn ihr euch nicht auskennt beim Programmieren?

Hallo Leute, ich will nur Fragen, was ihr macht, wenn ihr nicht weiter wisst bei einem Projekt, während ihr programmiert. 

Weil ich möchte programmieren und ich möchte meiden Internet Seiten (die mit fertig geschriebenen) und YouTube Tutorials zu verwenden, während ich programmiere, da dort die Codes fertig geschrieben sind und ich sie nicht komplett abschreiben möchte, aber ich könnte mir den Code zumindest durchlesen.

Ich würde lieber im Internet die offizielle Dokumentationen der Programmiersprachen zur Hand nehmen und wenn es wirklich ein spezifisches Problem ist, könnte ich diese oben genannten Methoden verwenden, die ich normalerweise Meiden würde und wahrscheinlich auch Foren wie auf Reddit und Stack Overflow verwenden (obwohl mir Stack Overflow immer sehr unsympathisch wirkt).

Mir ist es bewusst, dass das alles Selbstverständlich ist sowas zu tun, aber in der Schule wurde uns sowas nicht so gelehrt sowas zu machen, sondern uns wurden die Zetteln/Word Dateien gegeben, mit Trockenen Erklärungen und meistens stumpfes Auswendiglernen. Die Aufgaben, die uns die Professoren geben sind recht unverständlich und trotz das wir sie Fragen stellen konnten, haben sie niemanden beim Programmieren geholfen, sowie als wollen sie uns dazu bringen das Programmieren zu hassen.

Versteht mich nicht falsch, ich finde Programmieren trotzdem interessant und will es auch erlernen, aber das was man in der Schule lernt ist nichts. Wir haben dort nie wirklich was mit GC oder Memory Allocations gehabt, sondern haben meistens oberflächlich mit VS 2019 mit C# gelernt. Die Sprache ist eigentlich recht verständlich, aber in der Schule war es eben recht schmerzhaft zu lernen.

Programmiersprachen die ich lernen möchte sind C# und Python zurzeit. In der Zukunft auch Rust, aber das würde ich später lernen.

Wie ist es bei euch so?

Danke LG

Software, App, Programm, Webseite, programmieren, C Sharp, Entwicklung, Programmiersprache, Python, Softwareentwicklung, Rust, Entwicklertools
C# Versuch zwei?

Guten Morgen,

ich bin gerade dabei mit dem Programmieren bei C# Anzufangen und bräuchte mal ein wenig Hilfe. Ich habe bis jetzt diesen Code:

using System;
namespace roboter
{
  class Program
  {
    static void Main(string[] args)
    {
      string antwort;
      bool antwortOk;
      string antwortRobo;
      bool antwortOkRobo;
      {
        do
        {
          Console.WriteLine("Guten Tag Herr Baumann, möchten sie meinen Roboter starten? [Ja|Nein]");
          antwort = Console.ReadLine();
          antwortOk = antwort.ToLower() == "ja" || antwort.ToLower() == "nein";
          if (!antwortOk)                                              //Nur die Frage, ob man es starten will
          {
            Console.WriteLine("Bitte geben Sie Ja oder Nein ein");
          }
        } while (!antwortOk);
        do
        {
          Console.WriteLine("Ist die Wand schon da?");
          antwortRobo = Console.ReadLine();
          antwortOkRobo = antwortRobo.ToLower() == "ja" || antwortRobo.ToLower() == "nein";
          if (!antwortOkRobo)                                              //Nur die Frage, ob man es starten will
          {
            Console.WriteLine("Bitte geben Sie Ja oder Nein ein");
          }
          Console.WriteLine("Schritt");
        } while (!antwortOkRobo);
        Console.WriteLine("Drehung");
         
        do
        {
          Console.WriteLine("Möchten Sie eine weitere Aufgabe Berechnen? [Ja|Nein]");
          antwort = Console.ReadLine();
          antwortOk = antwort.ToLower() == "ja" || antwort.ToLower() == "nein";
          if (!antwortOk)
          {                                                    //Nur Frage, ob man ihn nochmal starten soll
            Console.WriteLine("Bitte geben Sie Ja oder Nein ein");
          }
        } while (!antwortOk);
      } while (antwort.ToLower() == "ja") ;
      Console.WriteLine("Bis zum nächsten Mal!");
      Console.ReadKey();
    }
  }
}

Ich würde gerne, dass er nur den Schritt macht, wenn man nein sagt. Und wenn man ja sagt, soll er sich nur drehen und keinen Schritt machen, wie kann ich das am besten umsetzen?

C Sharp, Visual Studio
Downgrade dank Versionsverwaltung möglich?

Hallo zusammen

Wir haben folgende Situation. Aktuell führen wir eine neue Software ein. Der Hersteller schickt uns hier Key-Account-Manager die technisch nicht sehr pfiffig sind. Soweit so gut. Nun hatten wir gerade die Diskussion, ob wir auf der Testinstanz im Falle eines Falle ein SW-Downgrade machen können. Der Hersteller meinte; "nicht in allen Fällen".
aber ist nicht gerade auch das die Idee einer Versionsverwaltung?

Use-Case

Wir haben zwei Systeme:

  • Produktion und
  • Testumgebung

Wir habe eine Versionsverwaltung (Git) von der aus wir die SW entsprechend deployen. Sowohl auf Testumgebung als auch auf Prod.

So, nun hat man es offenbar verpasst, die Regeln für die Testumgebung festzusetzen. Der Hersteller (welcher aktuell bei uns im Haus ist) verlangt von uns immer wieder, dass wir RC (Release Candidates) auf die Testumgebung spielen. Was auch nicht dramatisch ist. Problem ist nur, dass wir offenbar die Softwareparität ausser Acht lassen. Denn was ich gerne hätte, wäre eine Produktion und eine Testumgebung die zumindest potenziell den selben Softwarestand fahren können. Dann kann man auf der Testumgebung spielen so viel man will, man kann jederzeit die Produktion 1:1 abbilden. Zumindest auf Softwareebene.

Nun gehe ich davon aus, dass man mit der Versionsverwaltung genau das kann. Also eine alte Version mit dem Master Mergen und dann deployen. Der Hersteller (technisch vielleicht nicht affin, da Verkäufer im Haus) meint, dass das nicht zwingend geht. Da beim RC oder bei welcher Version auch immer Tabellen bzw. die DB neu organisiert wird.

aber ich gehe eben genau davon aus, dass eine alte SW-Version die Tabellen bzw. DB Schemen dann wieder so um- und überschreibt wie sie das zum Versionsstand XYZ aus der Vergangenheit gemacht hat.

bin ich hier völlig auf dem Holzweg? Eine Versionsverwaltung bringt mir in dem Fall doch herzlich wenig, wenn ich kein Fallback bzw. Downgrade machen kann. richtig?

Grüsse euch, danke für eure Gedanken im Voraus.

Software, C Sharp, Datenbank, Downgrade, Softwareentwicklung, Upgrade, Datenbanksystem, github, Datenbankmodell

Meistgelesene Beiträge zum Thema C Sharp