Jump to content
Unity Insider Forum

Physics.CheckSphere


STU

Recommended Posts

Hallo zusammen,

ich möchte gerne dass mich der Gegner verfolgt, wenn ich mich ihm nähere. Das funktioniert auch erstmal soweit. mein Problem ist, dass "sightRange" bei mir nicht als Radius sondern als Zeit verwendet wird. Also der Gegner verfolgt mich solange wie ich hier den Wert eintrage. Bei 10.0f verfolgt er mich ca. 10sek. Das sollte doch aber nicht so sein. Kann mir jemand vielleicht sagen woran das liegen kann?

CheckSphere(Vector3 position, float radius, int layerMask)

 

playerInSightRange = Physics.CheckSphere(transform.position, sightRange, whatIsPlayer);

if (playerInSightRange ) ChasePlayer();


  private void ChasePlayer()
    {
        agent.SetDestination(player.position);
    }

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wat? Da ist nirgendwo irgendetwas mit Zeit. Du setzt das Ziel und der Agent rennt da so lange hin, bis er es erreicht hat. Solange der Spieler noch bzw. sobald er wieder in der Range ist, wird das Ziel überschrieben. Wenn der Agent irgendwo stehen anders bleibt als da, wo der Spieler stand, als er zuletzt in der Range war, dann liegt das nicht an diesem Code.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

ich habe den Fehler leider nicht beseitigen können. Daher habe ich die Scene komplett gelöscht und nochmal von vorne begonnen. Jetzt funktioniert es. Woran es lag kann ich leider auch nicht sagen. Ich habe auch alles nach und nach gelöscht um den Fehler einzugrenzen. War aber bis zum Schluss vorhanden  😅

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...