2016-08-31 4 views
1

Nicht sicher, warum meine Kollision nicht dazu führt, dass meine Konsole "Ich treffe Feind" ausgibt. Der Spieler hat eine Starrkörperkomponente, der Gegner nicht.Probleme bei der Kollisionserkennung

Mein Feind hat die tag Feind. Der Feind bewegt sich mit der Transformation. Mein Spieler hat die Starrkörperkomponente, mein Gegner nicht. Irgendwelche Ideen?

using UnityEngine; 
using System.Collections; 

public class PlayerMovement : MonoBehaviour { 
public float moveSpeed; 
public float maxSpeed = 5f; 

private Vector3 input; 
private Rigidbody rb; 

// Use this for initialization 
void Start() { 
    rb = GetComponent<Rigidbody>(); 
} 

// Update is called once per frame 
void Update() { 
    input = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical")); 

    if (rb.velocity.magnitude < maxSpeed) { 
     rb.AddForce(input * moveSpeed); 
    }  
} 

void onCollisionEnter(Collision other) 
{ 
    if (other.transform.tag == "Enemy") 
    { 
     print ("I hit enemy"); 
    } 
} 
} 
+0

Hat Ihr Feindobjekt einen Collider (und den Player)? – TheDjentleman

Antwort

1

Ein weiterer einfacher Fehler für neue Unity-Benutzer. Rechtschreibung zählt! Ersetzen Sie einfach onCollisionEnter durch OnCollisionEnter. Bei den Callback-Funktionen wird zwischen Groß- und Kleinschreibung unterschieden, und ihr erster Buchstabe ist normalerweise groß geschrieben.

Wenn dies nicht funktioniert, befestige Rigidbody auch an deinen Gegner. Stellen Sie sicher, dass beide Collider an beide angeschlossen haben und dass IsTrigger nicht enabled ist.

+0

Danke! Das war mein Problem. – Travis

0

Mehrere Lösungen könnten passen. Vielleicht hast du einfach vergessen, den Tag auf deinen Gegner zu setzen? Bitte werfen Sie einen Blick auf die Unity3D Kollisionsmatrix (- am Ende der Seite).

Die Kollisionsmatrix informiert Sie, wann Kollisionsnachrichten angezeigt werden. Z.B. Sie können keinen statischen Collider mit einem Starrkörpercollider kollidieren lassen. Prüfe alle deine Spielobjekte. Passen sie zu den Anforderungen einer Kollision?