Unity 3D der collider funktioniert zwar (kann nicht durch wände)aber wenn ich gegen ein objekt laufe respawne icv nicht?
das 1 ist spieler collider das 2 ist tödliches objekt collider
das. 3 ist der code
sorry für Rechtschreibung handy screen is kapput
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.
== ist nur true. Wenns es das Selbe string Objekt ist.
Das ist falsch. Es handelt sich hier um C#, nicht Java.
Wie dir bereits geschrieben wurde: Setze einen Breakpoint, nutze den Debugger.
- https://docs.unity3d.com/Manual/ManagedCodeDebugging.html
- https://docs.microsoft.com/en-us/visualstudio/debugger/navigating-through-code-with-the-debugger?view=vs-2019
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.
Es funktioniert nich es zeigt aber auch kein fehler an was jz ? Bin anfänger sorry wenns dumm ist