Ich habe ein kleines Problem mit OnTriggerEnter, wenn ich mein Handy als Testgerät benutze. Ich habe einige Touch-Code, mit dem ich erfolgreich Objekte auf dem Bildschirm ziehen kann. Ich habe dann die Objekte mit anderen Objekten auf dem Bildschirm kollidieren.Unity 2D Kollisionen mit Prefabs funktioniert nicht am Telefon
Das funktionierte perfekt, bis ich die Objekte in Prefabs umwandelte. (Ich muss dies tun, da die Objekte zur Laufzeit zufällig generiert werden)
Jetzt kann ich noch die Objekte auf dem Bildschirm bewegen, aber sie kollidieren nicht mehr mit den anderen Objekten, die auch vorgefertigt sind. Es funktioniert jedoch immer noch gut, wenn es auf meinem Laptop im Unity-Editor ausgeführt wird.
Alle meine Objekte haben Collider auf sie mit Trigger überprüft, und die beweglichen Objekte haben starre Körper.
On Trigger Code eingeben
public void OnTriggerEnter(Collider other)
{
Debug.Log ("here");
Debug.Log(this.gameObject.tag +"is this");
Debug.Log(other.gameObject.tag + "is other");
if (this.gameObject.tag == other.gameObject.tag)
{
Debug.Log("here2)");
Reftomanager.miniGameScore++;
Reftomanager.updateScore();
Destroy(this.gameObject);
}
}
Touch Code
if (Input.touchCount > 0)
{
Touch touch = Input.GetTouch(0);
switch(touch.phase)
{
case TouchPhase.Began:
Ray ray = Camera.main.ScreenPointToRay (touch.position);
if (Physics.Raycast(ray,out hit))
{
thisObject = hit.collider.gameObject;
touchPos = Camera.main.ScreenToWorldPoint (touch.position);
if(thisObject.name!="circle")
{
draggingMode = true;
}
}
break;
case TouchPhase.Moved:
if (draggingMode)
{
touchPos = Camera.main.ScreenToWorldPoint (touch.position);
newCentre = touchPos;
thisObject.transform.position = touchPos;
}
break;
case TouchPhase.Ended:
draggingMode = false;
break;
}
}
}
ich völlig ratlos bin so jede mögliche Hilfe wäre erstaunlich.
Dank
Dank Robert, stellte sich heraus, dass der Z-Wert bei Instanziierung geändert wurde. Manuelles Zurückstellen auf 0 funktioniert :) –
Ich bin froh zu hören, dass ich helfen konnte! :) – Allen