【问题标题】:Unity 2D - Detect Tiles with MouseUnity 2D - 用鼠标检测瓷砖
【发布时间】:2021-03-30 04:20:04
【问题描述】:

概述:我正在制作一个 2D 塔防游戏,使用 Tilemaps 作为环境,精灵作为塔和敌人。鼠标需要

问题:我想根据鼠标悬停或点击的图块或精灵触发不同的事件/方法。

示例 - 将鼠标悬停在可构建图块上会显示突出显示的图块,但当鼠标悬停在“死”的不可构建图块上时,突出显示会消失。

经过 10 多个小时的研究,我想我需要使用 Raycasts、2D Colliders 和 Layers 来检测鼠标何时悬停或点击瓷砖/对象,但我不知道如何触发不同的事件/方法取决于鼠标正在与哪个特定层或标签进行交互。

问题:如何通过鼠标悬停/单击来检测和访问图块或游戏对象?有没有办法根据我分配给我想在悬停/点击时检测到的东西的标签/图层触发不同的方法?

【问题讨论】:

    标签: c# unity3d 2d raycasting tile


    【解决方案1】:

    首先,您不需要光线投射或碰撞器来检测鼠标事件。有很多方法可以做到这一点,但您可以创建 eventListener 以用于多个对象。作为一个简单的解决方案,您可以考虑使用附加到您要控制的对象的脚本(包括 UnityEventListeners)。

    【讨论】:

    • 您是否建议我使用 OnMouseDownEnter() 和其他类似事件?因为我见过的几乎所有教程和指南都强烈反对这样做,因为当您有数十个对象和需要选择和取消选择的不同层时,它就无效了。
    • 好的,经过另外10个小时的研究,我希望你学会正确理解和解释我所说的。问候..,
    • 谢谢,非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    相关资源
    最近更新 更多