我試圖檢測鼠標在3D場景上的2D精靈上單擊。Physics2D.OverlapPoint()返回總是爲空
我的所有Sprite都有一個Box Collider 2D(放置良好)和一個腳本,但是一直是null。我也嘗試將Update()函數放在GameEngine GameObject上的腳本上,但我得到了相同的結果。
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);
}
我建議是使用UnityEngine.EventSystems和實施以下這些接口 IPointerClickHandler IPointerDownHandler IPointerEnterHandler IPointerExitHandler IPointerUpHandler 或在它的最基本的層面EventTriggers https://unity3d.com/學習/教程/主題/用戶界面 - 用戶界面 - 用戶界面 - 用戶界面 - 事件 - 觸發器 – Rob
亞瑟 - 你在做什麼**是完全錯誤的**,嘿:)它更容易。除了其他任何東西,**一定要閱讀這個**:http://stackoverflow.com/a/38311402/294884 – Fattie
確實羅布已經完全解釋它給你很好 – Fattie