【问题标题】:Dont click on objects that are behind button不要点击按钮后面的对象
【发布时间】:2016-07-24 18:03:09
【问题描述】:

我有一个统一的场景,其中有 4 个立方体和按钮,这个按钮是隐藏的,只有在某些事件发生时才会出现。因此,当此按钮未隐藏时,我按下它并且该按钮后面的对象也被单击,我不希望它们也被单击,我怎样才能使该唯一按钮被单击,仅此而已?和上一个提到的问题 - 我可以让属于指定层的对象不可交互,所以当我不想让玩家点击它们时,玩家将无法点击它们?

MonoBehaviour 中的默认方法捕获 Cube 的点击 -

void OnMouseDown() 
{
    Debug.Log("Cube clicked");
}

按钮是作为内置的 Unity UI 对象“按钮”创建的,当我点击它时会启动我选择的一些方法,因此所有捕获点击按钮的代码都不是我自己编写的,而是 Unity 的创建者编写的

这是我的场景的照片

【问题讨论】:

  • 请编辑您的问题并添加一个代码,显示您如何检测按钮点击以及您如何检测按钮后面的该对象的点击。这将有助于帮助您。不要包含所有代码,只包含检测点击或类似内容的一段代码
  • Thahks 的建议,做到了
  • 你只输出代码来检测被点击的对象。您用来检测 Button 何时被点击的代码在哪里?
  • @Programmer 没有这样做的代码,它的实现就像屏幕截图上显示的 SP 一样,unity 允许我选择单击按钮时启动的方法,并且捕捉点击本身会执行 unity 引擎

标签: c# user-interface unity3d


【解决方案1】:

按钮通常不是这样工作的。使用按钮的OnClick() 事件来处理点击动作。

None(Object) 字段中添加包含对象的脚本,并从下一个下拉字段中选择一个公共方法。

【讨论】:

  • 就是这样完成的,我想我解释得不好,但这就是我实现按钮的方式
【解决方案2】:

尝试将canvas group component 添加到 UI 按钮。然后其中一个选项是阻止光线投射,您应该勾选此项,并且没有鼠标点击将通过 UI 元素到达后​​面的对象。 (如果我正确理解了您的问题)。希望能帮助到你。 Canvas group component

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 2020-06-14
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    相关资源
    最近更新 更多