1.Raycast法
原理相同於3D中得Raycast法,具體使用略有區別。
1 RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero); 2 3 if(hit.collider != null) 5 { 7 Debug.Log ("Target Position: " + hit.collider.gameObject.transform.position); 8 //and do what you want 9 }
2.Overlap法
個人覺得這個方法對於2D更合適一些,判斷點擊的點落在了哪些collider中。
1 Collider2D[] col = Physics2D.OverlapPointAll(Camera.main.ScreenToWorldPoint(Input.mousePosition)); 2 3 if(col.Length > 0) 4 { 5 foreach(Collider2D c in col) 6 { 7 //do what you want 8 } 9 }
以上代碼中用到的是mousePosition,對於觸摸的Touch原理完全相同。