【问题标题】:EventTrigger component only works with UI system?EventTrigger 组件仅适用于 UI 系统?
【发布时间】:2015-02-16 07:02:50
【问题描述】:

我是 Unity 新手,使用的是 4.6 版本。

我有一个预制件,它只是一个精灵。我实例化了其中的三个。

我想从这些实例接收触摸和鼠标事件。

所以,我从 c# 脚本向它们添加了 EventTrigger 组件,并添加了 ClickEvent。

我还添加了 IPointerClickHandler 并实现了它。

但它永远不会得到任何事件。我错过了什么?

TriggerSystem 是否仅适用于 UI 系统?因为我没有添加任何 UI Pannel 或 UICanvas 等(而是添加了一个空对象并添加了 TriggerSystem 组件)

如果这不是一个好方法,请给我一个开始的方向。

提前致谢。

【问题讨论】:

  • 谢谢你们。它对我来说从来没有与 EventSystem 一起工作过。也许它只适用于触摸设备。所以我添加了 BoxCollider2D 并使用了 Input 类。无论如何它都有效。也许我应该检查一下性能。
  • 您需要将 2D Collider 附加到该 2D 对象/Sprite。 stackoverflow.com/a/37456107/7444831

标签: unity3d


【解决方案1】:

以下适用于移动设备。

如果您想在没有 UI 的情况下进行游戏控制,您可以使用 Input

This 是 Unity 文档。

它指向TouchPhase,所有触摸阶段都可以找到here

Unity 文档有很好的示例代码,我认为你应该检查一下。

【讨论】:

    【解决方案2】:

    为了使 GUI 系统正常工作,您的场景中还应该有一个 EventSystem 对象。

    您也可以使用简单的方法,从编辑器中将 collider2d 添加到精灵。

    将此写入脚本并将其附加到游戏对象中。

    void OnMouseDown() {
        // do something
    }
    

    Unity 还将鼠标事件转换为触摸系统上的触摸事件,因此您可能无需担心简单的触摸事件。

    【讨论】:

      猜你喜欢
      • 2016-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-26
      • 2019-09-16
      • 1970-01-01
      相关资源
      最近更新 更多