繁体   English   中英

Unity 3D,即使精灵不可见,我如何检测鼠标是否在 2D 精灵上方

[英]Unity 3D, How can I detect if mouse is over a 2D Sprite even if the Sprite is not visible

我使用 Unity3D 游戏引擎,偶然发现了这个问题。 当我尝试检查鼠标是否在精灵上方时,我可以使用此回调来完成此操作。

private void OnMouseOver()
{
    // Do Something
}

但是如果鼠标没有直接在精灵上方,这个方法就行不通了。 有没有其他选择?

橙色精灵是我想要检测的精灵,但是蓝色圆圈使它无法检测到鼠标(这看起来不太好,我不是艺术家,但我应该说清楚我希望)

如果您想知道鼠标单击下方有哪些对象,请使用以下命令:

示例 - 将其放入您的更新中:

if (Input.GetMouseButtonDown(0))
{
    var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    var hits = Physics2D.GetRayIntersectionAll(ray, 1500f);

    foreach (var hit in hits)
    {
        print($"Mouse is over {hit.collider.name}");
    }
}

出于性能原因,您可能需要使用:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM