2015-11-12 72 views
3

我有一個2D統一項目。 我不能依賴於OnMouseExit,因爲重疊的2D盒子碰撞體即使在鼠標位於邊界內時也會觸發該方法,因爲前面還有其他東西(這不是我的意圖)。如何將框的邊界轉換爲屏幕座標

我會用手動檢查鼠標退出每幀:

if(!_collider.bounds.contains(Input.MousePosition)) 

但是,這並不工作,因爲`鼠標位置」是在屏幕的像素數方面,和「範圍」是相對於場景的起源而言的「單位」。相機是Orthographic,可以滑動來觀察世界上的精靈坐在的2D平面上。我不知道有多少「單位」適合整個屏幕,並懷疑它會在您更改寬高比或屏幕尺寸後立即改變。

回答

2

您可以使用ScreenToWorldPoint(),從屏幕點到基於相機的視3D/2D點,這樣的轉換:

if(!_collider.bounds.contains(Camera.main.ScreenToWorldPoint(Input.MousePosition))) 
相關問題