有没有办法在忽略特定图层的同时使标准统一OnClick甚至火? 例如,我在“单位”层上有士兵,在“地面”层上有地面。当我点击士兵时,它会被选中。然后我点击地面,士兵在那里移动。但是,如果我点击被另一名士兵遮挡的地面,它甚至会对那个士兵而不是地面开火,因为他更接近相机。 我是否可以忽略“单位”图层而无需重写整个鼠标点击甚至处理和使用我的自定义光线投射?
编辑: 代码在这里,不管它会显示什么,但
static public void Interact2(Cell target) //this fires from OnClick
{
if (GameLogic.Mode == mode.move)
{
grid.MoveTo(target);
if (selected.actionsAvilable[action.move])
selected.actionsAvilable[action.move] = false;
else
selected.actionsAvilable[action.standard] = false;
GameLogic.Mode = GameLogic.mode.normal;
}
}
更多编辑:
void OnMouseDown() {
if (!UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject())
GameLogic.Interact2(this);
}
答案 0 :(得分:1)
PhysicsRaycaster / PhysicsRaycaster2D / GraphicsRaycaster组件具有Event Mask属性,允许您限制它们对其进行光线投射的图层。如果要阻止/允许某些图层,则应该从代码更新该属性。