Jump to content
Unity Insider Forum

Start und Endposition vom Gegner auslesen


olliks1973

Recommended Posts

Hallo, ich habe mal eine Frage:

Ich möchte aus folgendem Script den Start und Endpunkt debuggen. Leider funktioniert das nicht. :

using UnityEngine;

public class RunEnemy : MonoBehaviour
{
    public float min;
    public float max;

    public void Start()
    {
        min = transform.position.x;
        max = transform.position.x + 6;
    }

    public void Update()
    {

        transform.position = new Vector2(Mathf.PingPong(Time.time * 4, max - min) + min, transform.position.y);

        if (transform.position.x == max)
        {
            Debug.Log("max");
        }
        if (transform.position.x == min)
        {
            Debug.Log("min");
        }
    }
}

Eventuell findet jemand den Fehler 🙂 vielen Dank im Vorraus

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 5 Minuten schrieb 6-huber:

was schriebt der unity editor für eine fehlermeldung

weil ich die funktion 


Mathf.PingPong

nicht kenne, würde ich die für den übeltäter halten

Die PingPong funktion wechselt einfach zwischen min und max hin und her, damit läuft der gegener halt hin und her in einem bestimmten bereich. Es gibt keine Fehlermeldung. Der Debug bleibt einfach leer. Ich möchte auslesen wann der gegner am endpunkt und am anfangspunkt ist um dann den gegner in der richtung zu drehen und noch weitere aktionen auszuführen

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 39 Minuten schrieb 6-huber:

leider verstehe ich deine frage dann nicht ganz, wenn du keine fehlermeldung bekommst, woher willst du dann wissen das was ned passt?

wenn er einfach nix macht, schau ob das script wirklich richtig zugeteilt ist

 

Ich möchte den Start und Endpunkt debuggen. Das scritp ist schon richtig angebunden 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

sobald du das script sicherst und in deinem unity projekt hast, prüft der editor den code und übersetzt diesen.

wenn du detailierter debuggen willst (weil irgendwas zwar geht, aber nicht so wie du es willst) dann kannst du das per vs machen. was du an diesen 15 Zeilen debuggen willst ist mir noch immer unklar, bzw. habe ich das gefühl, dass du eventuell debuggen falsch verstehst.

falls es dir hilft, hab ich im anhang den manual eintrag zum debbugen
https://docs.unity3d.com/Manual/ManagedCodeDebugging.html

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 4 Stunden schrieb 6-huber:

sobald du das script sicherst und in deinem unity projekt hast, prüft der editor den code und übersetzt diesen.

wenn du detailierter debuggen willst (weil irgendwas zwar geht, aber nicht so wie du es willst) dann kannst du das per vs machen. was du an diesen 15 Zeilen debuggen willst ist mir noch immer unklar, bzw. habe ich das gefühl, dass du eventuell debuggen falsch verstehst.

falls es dir hilft, hab ich im anhang den manual eintrag zum debbugen
https://docs.unity3d.com/Manual/ManagedCodeDebugging.html

Schau mal, es geht nicht um das Debuggen, ich möchte wie oben schon erwähnt wissen, wann der Gegner den Startpunkt und Endpunkt erreicht! Da habe ich einfach ein Debug.log reingesetzt! Eventuell ist der Weg wie ich an die Punkte kommen will falsch. Bei den If-Statements geht irgendwas nicht

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 4 Stunden schrieb olliks1973:

Schau mal, es geht nicht um das Debuggen, ich möchte wie oben schon erwähnt wissen, wann der Gegner den Startpunkt und Endpunkt erreicht! Da habe ich einfach ein Debug.log reingesetzt! Eventuell ist der Weg wie ich an die Punkte kommen will falsch. Bei den If-Statements geht irgendwas nicht

jetzt verstehe ich was du willst.
deine figur bewegt sich immer weiter oder?


warscheinlich erreicht dein punkt nicht exakt die position. Unity arbeitet mit mehreren Dezimalstellen. das Bedeutet du musst entweder eine Abweichung mitreinnehmen.

if (transform.position.x >= max-0.5f && <max+0.5f)

oder du lässt ihm das letzte stück auf genau diese position springen

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Stunden schrieb 6-huber:

jetzt verstehe ich was du willst.
deine figur bewegt sich immer weiter oder?


warscheinlich erreicht dein punkt nicht exakt die position. Unity arbeitet mit mehreren Dezimalstellen. das Bedeutet du musst entweder eine Abweichung mitreinnehmen.


if (transform.position.x >= max-0.5f && <max+0.5f)

oder du lässt ihm das letzte stück auf genau diese position springen

Ich hab es jetzt mal mit FixedUpdate und ganzzahlen gemacht, da geht das ganz gut. Trotzdem vielen dank :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...