Raycasting zu finden Mausklick auf ein Objekt in unity-2d-Spiele

Ich versuche zu löschen, das Objekt, auf dem die Maus geklickt wird. Ich mache ein 2D Spiel mit der neuen Unity3D 4.3. Hier ist der code, den ich verwende

void Update () {

    if (Input.GetMouseButtonDown(0)) 
    {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        if(Physics.Raycast(ray,out hit))
        {
            isHit = false;
            Destroy(GameObject.Find(hit.collider.gameObject.name));

        }
    }

}

Ist die Steuerung nicht in der inneren if-Schleife. (isHit ist nicht als false festgelegt).

Hat das Objekt einen collider? Gibt es einen Beschleuniger und einen Festkörper?
Ja, es enthält einen Beschleuniger und einen Festkörper
Ich verwendet Physics2D und es funktioniert!! Dies ist der geänderte code Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); Vector2 orgin = new Vector2(ray.Herkunft.x-ray.Herkunft.y); RaycastHit2D Treffer = Physics2D.Linecast(orgin,-Vector2.bis,1 << LayerMask.NameToLayer("Unterstützt")); Destroy(hit).collider.gameObject); Aber jetzt, auch wenn ich auf anderen Orten ist das Objekt gelöscht wird.. ich denke, das problem ist mit dem raycast Richtung -Vector2.bis.. in Welche Richtung soll ich es umwandeln ??
nicht wirklich ein Teil von dem, was Sie gefragt, aber in dieser Zeile: Destroy(GameObject.Find(hit.collider.gameObject.name)); finden, ist nicht erforderlich. Einfach tun Destroy(hit.collider.gameObject); sollte gut funktionieren.
Ich kann nicht mit, der Zustand aufgrund eines Fehlers. Er sagte: "cannot convert from 'UnityEngine.Ray UnityEngine.vector2'." Gleiche wie Ray-ray.

InformationsquelleAutor Bimal Bose B S | 2013-12-14

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.