2017-09-15 98 views
0

我有一個基於圖塊的網格系統,其中每個圖塊都有一個箱子對撞機。這些瓷磚使用:unity3d onMouseOver在它上面的精靈時不會調用

OnMouseOver() 

哪個調用正確。但是,如果我有另一個與碰撞器在同一位置的精靈,它似乎阻止了能夠觸發OnMouseOver()的瓦片。

這有什麼好的解決辦法?

+0

不要使用'OnMouseOver'使用'OnPointerEnter'。請參閱[重複](https://stackoverflow.com/questions/46188071/how-to-detect-multiple-overlapping-gameobjects-with-the-eventsystem/46192131#46192131)瞭解更多信息。 – Programmer

+0

[如何使用EventSystem檢測多個/重疊GameObjects?]可能的重複(https://stackoverflow.com/questions/46188071/how-to-detect-multiple-overlapping-gameobjects-with-the-eventsystem/46192131# 46192131) – Programmer

回答

0

我看到2個可能的解決方案,他們不使用的onmouseover雖然..

  1. 使用從屏幕上鼠標位置光線投射在你FixedUpdate方法(其基於物理的)。在光線投射中,您可以定義哪些圖層應該與之發生碰撞,這可以讓您確定檢測到哪些對象。

  2. 如果還沒有工作,另一種解決方案可能是創建一個不可見對象,它不斷在其更新方法中將其位置設置爲鼠標位置,然後添加碰撞器並將碰撞器設置爲觸發器,可以自由移動。爲對象提供標記「Cursor」,並使用OnTriggerEnter作爲方法而不是OnMouseClick。