我有一個基於平鋪的遊戲。我把塔作爲瓷磚的子對象。我希望能夠通過光線投射來檢測塔上的鼠標點擊,但不能檢測到瓦片。瓷磚和塔都有2d盒子對撞機。我可以檢測瓷磚上的點擊,但光線投射不會檢測到塔上的點擊。我怎麼解決這個問題。謝謝。統一:Raycast不適用於兒童對象的對撞機
這裏是我的光線投射代碼:
if (Input.GetMouseButtonDown(0))
{
Ray ray = camera.ScreenPointToRay(Input.mousePosition);
ray.origin = camera.transform.position;
RaycastHit2D hit = Physics2D.Raycast(camera.transform.position, -Vector2.up, 50, 8);
if (hit.collider != null && !EventSystem.current.IsPointerOverGameObject())
{
Debug.Log(hit.collider.transform.tag);
//Transform objectHit = hit.transform;
}
}
}
當我掩蓋磚(此處層8)我什麼也沒得到。似乎光線從未擊中塔,雖然塔(如瓷磚)也有2d箱對撞機。
可以顯示有問題的對撞機的屬性的屏幕截圖嗎?這個光線投射是否有所作爲?更多細節將有助於將問題縮小到可回答的狀態。 – Serlite
你可以檢查瓷磚的碰撞和發現瓷磚是否有孩子然後控制它... [https://docs.unity3d.com/ScriptReference/Transform.GetChild.html](https://docs.unity3d.com/ ScriptReference/Transform.GetChild.html) –
請查詢實際問題。嘗試描述問題,儘可能地編輯該問題 –