Unity 3D der collider funktioniert zwar (kann nicht durch wände)aber wenn ich gegen ein objekt laufe respawne icv nicht?

1 Antwort

String bitte immer mit Equals vergleichen.

== ist nur true. Wenns es das Selbe string Objekt ist. Das wird hier sehr warscheinlich nicht der fall sein.

Probier mal:

hit.gameObject.tag.ToString().Equals("Deadly")

Und schau mal nach was denn da wirklich im Tag im code drinne steht. Eventuell ist das gar kein String. Sondern nen enum oder was ganz anderes.

Breakpunkt auf die if und dann wenn der collider fliegt nachschauen was denn da wirklich im Tag drinnen ist und entsprechend dann den vergleich anpassen.

Generell: Im debug durchsteppen und schauen was los ist.

Fanton 
Fragesteller
 04.08.2021, 17:09

Es funktioniert nich es zeigt aber auch kein fehler an was jz ? Bin anfänger sorry wenns dumm ist

0
regex9  04.08.2021, 20:54
@Fanton

Wie dir bereits geschrieben wurde: Setze einen Breakpoint, nutze den Debugger.

Schau nach, ob die Methode überhaupt aufgerufen wird und wenn ja, welchen Wert tag zur Laufzeit hat. Es ist ein String (daher bedarf es auch keines Aufrufs von ToString), aber dennoch kann es gut sein, dass der Wert nicht "Deadly" ist.

0
FouLou  05.08.2021, 09:41
@regex9

Ist die Property Tag tatsächlich vom Typ String? Ich kenn mich mit Unity nicht wirklich aus und Tags nor vom WPF framework und da sind Tags vom Type Object.

0
FouLou  05.08.2021, 09:51
@regex9

AH. Danke dir. Ja dann braucht man kein ToString

0
regex9  04.08.2021, 20:49
== ist nur true. Wenns es das Selbe string Objekt ist.

Das ist falsch. Es handelt sich hier um C#, nicht Java.

0