2016-05-13 28 views
0

這裏是我的代碼:團結 - 光線投射命中,錯對撞機

using UnityEngine; 

public class InputController : MonoBehaviour { 

    void Update() { 
     if (Input.GetMouseButtonUp(0)) { 
      var hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero); 

      if (hit.collider != null) { 
       var e = hit.collider.gameObject; 

       Debug.Log(e.transform.position.x + ":" + e.transform.position.y); 
      } 
     } 
    } 
} 

當我點擊/觸摸細胞,有時命中良好,細胞則透露,有時命中永遠是假的(它像我觸摸錯誤的單元格),有時它取決於我單擊的位置(請參見下面的圖像)。

我點擊了單元格的左邊部分,控制檯說我點擊了左邊的單元格。 wrong raycast

我點擊了單元格的右邊部分,控制檯說我點擊右邊的單元格(並顯示它)。在這種情況下,它是左/右,但它可以是上/下,一個角落... good raycast

我不知道我的問題是否很好解釋抱歉,我的英語不完美...唐毫不猶豫地問我更多的細節!

+1

這是一個在畫布下或只是精靈的UI?請在所選單元格之一中張貼場景中實際圖像的截圖。我想看看單元格的屬性。 – Programmer

回答

0

好的我找到了問題。

左側單元格的比例爲2,因此它與右側單元格重疊。

0

我猜這是collider重疊的問題。你必須重置所有對撞機並檢查它,它是否重疊在任何物體上?

你可以在gamemode上檢查colider,打開「Gizmo」。所以你會看到所有的對撞機,並再次檢查它是否重疊在那裏?