Jump to content
Unity Insider Forum

Problem mit Trigger Collider


Wikked

Recommended Posts

Hi,

 

ich habe, wie der Titel schon sagt, ein Problem mit den Trigger Collider. Und zwar versuche ich grad Leitern in mein 2D Spiel einzufügen, die der Spieler hochklettern kann. Ich hab meine einzelnen Leiter Sprites in ein leeren GameObject rein und diesem einen BoxCollider verpasst der als Trigger funktionieren soll.

 

Ich poste einfach direkt das entsprechende Skript zu den Leitern

 

 

 

using UnityEngine;
using System.Collections;
public class Ladders : MonoBehaviour {
private PlayerController Player;
void Start () {
	Player = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerController>();
}

void OnTriggerEnter2D(Collider2D other)
{
	if(other.CompareTag("Player"))
	{
		Player.onLadder = true;
	}
}
void OnTriggerExit2D(Collider2D other)
{
	if (other.CompareTag("Player"))
	{
		Player.onLadder = false;
	}
}
}

 

 

Bool onLadder ist im Player Controller ohne Zuweisung initialisiert.

 

Beim testen verändert sich die Variable jedoch gar nicht. Player hat den entsprechenden Tag, Skripte sind zugewiesen. Hab auch mit den Layern bisschen rumgespielt aber funktioniert alles nicht.

Was ich komisch find ist das genau die selben Methoden jedoch bei Spikes zum Schaden nehmen funktionieren :/

 

mfg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die z-Position hat bei 2D-Collisions keinen Einfluss. Die z-Position ist nur für die visuelle Darstellung relevant.

 

Einfach alles nochmal durchprüfen: Hat einer der beteiligten Akteure (am besten der Player) einen Rigidbody2D? Haben alle beteiligten einen 2D-Collider? Sind alle Collider auf Trigger gestellt? Benutzt du überall die 2D-Methoden?

 

Vor allem das 2D überall hat mir schon manchmal Kopfzerbrechen und stundenlange Suche bereitet.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Jap war das 2D :D Die Leiter hatte nen normalen BoxCollider. Aber da hab ich dann auch schon gleich das nächste Problem mit Moving Platform. Denn wenn der Player draufsteht dann bewegt er sich nicht mit sondern fällt runter wenn man als Spieler nicht "mitläuft".

Auch hier lieber den zugehören Code bevor ichs versuch zu erklären :D

 

 

   void OnCollisionEnter2D(Collision2D other)
   {
    if (other.transform.name == "MP")
    {
	    transform.parent = other.transform;
    }
   }
   void OnCollisionExit2D(Collision2D other)
   {
    if (other.transform.tag == "MP")
    {
	    transform.parent = null;
    }
   }

 

 

Auch hier hab ich eigentlich alles kontrolliert. Tag ist zugewiesen, alle haben richtigen Collider, Spieler hat Rigidbody.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...