我有一个基于平铺的游戏。我把塔作为瓷砖的子对象。我希望能够通过光线投射来检测塔上的鼠标点击,但不能检测到瓦片。瓷砖和塔都有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) –
请查询实际问题。尝试描述问题,尽可能地编辑该问题 –