【发布时间】:2017-03-07 18:04:16
【问题描述】:
我有一个基于图块的游戏。我将塔放置为瓷砖的子对象。我希望能够通过光线投射检测塔楼而不是瓷砖上的鼠标点击。瓷砖和塔楼都有 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 盒对撞机,但似乎光线从未击中塔。
【问题讨论】:
-
你能显示有问题的对撞机的属性截图吗?光线投射是否击中任何东西?更多细节将有助于将问题缩小到可回答的状态。
-
你可以检查瓷砖的对撞机,看看瓷砖是否有孩子然后控制它...https://docs.unity3d.com/ScriptReference/Transform.GetChild.html
-
请提出实际问题。尽量描述问题
-
我编辑了这个问题。你现在可以看看吗? @Serlite