Ich versuche, Mausklick auf 2D-Sprite auf einer 3D-Szene zu erkennen.Physics2D.OverlapPoint() zurück immer Null
Alle meine Sprite haben einen Box Collider 2D (gut platziert) und ein Skript, aber hit ist null die ganze Zeit. Ich habe auch versucht, die Funktion Update() auf ein Skript auf GameEngine GameObject zu setzen, aber ich habe das gleiche Ergebnis.
void Update() {
if (Input.GetMouseButtonDown(0)) {
Vector2 mouse_position = Camera.main.ScreenToWorldPoint (Input.mousePosition);
Collider2D hit = Physics2D.OverlapPoint (mouse_position);
if (hit) {
Debug.Log ("Hit" + hit.transform.name);
} else {
Debug.Log (hit);
}
}
}
void OnMouseDown() {
Debug.Log ("Hit " + this.name);
}
ich empfehlen würde UnityEngine.EventSystems und Umsetzung der folgende diese Schnittstellen IPointerClickHandler IPointerDownHandler IPointerEnterHandler IPointerExitHandler IPointerUpHandler oder es ist grundlegendsten Ebene Eventtriggers mit https://unity3d.com/ lernen/tutorials/topics/user-interface-ui/ui-events-and-event-trigger – Rob
Arthur - was du machst ist ** völlig falsch **, heh :) es ist viel einfacher. Abgesehen von allem anderen, ** sicher sein, dies zu lesen **: http://Stackoverflow.com/a/38311402/294884 – Fattie
in der Tat Rob hat es vollständig für Sie schön erklärt unter – Fattie