【问题标题】:onClick event for Image in UnityUnity中图像的onClick事件
【发布时间】:2016-11-12 20:26:16
【问题描述】:

是否可以在 Unity 中为图像(画布的组件)添加“onClick”功能?

var obj = new GameObject();
Image NewImage = obj.AddComponent<Image>();
NewImage.sprite = Resources.Load<Sprite>(a + "/" + obj.name) as Sprite;
obj.SetActive(true);
obj.AddComponent<ClickAction>();

如何为“onClick”事件添加操作?

【问题讨论】:

    标签: c# unity3d onclick


    【解决方案1】:

    假设ClickAction 是您的脚本,您可以通过以下方式实现OnClick 功能:

    using UnityEngine.EventSystems;
    
    public class ClickAction : MonoBehaviour, IPointerClickHandler
    { 
        public void OnPointerClick(PointerEventData eventData)
        {
            // OnClick code goes here ...
        }
    }
    

    命名空间UnityEngine.EventSystems 为您提供IPointerClickHandler 接口。当您的图片被点击时,OnPointerClick 中的代码将运行。

    【讨论】:

    • @Quicki 欢迎您!如果您有任何进一步的问题,请随时问他们。 :)
    • 好的,那么我在这里缺少什么?我有一张图片,我已将“点击操作”脚本附加到它上面,但它没有捕获点击事件。
    • @PaulMouchet 如果代码不适合您,您应该考虑提出一个新问题。我的回答已经快 4 年了,有些事情可能已经改变,或者您的输入系统可能配置错误。
    • 好的,会的。我是 Unity 的新手,所以我想我可能只是缺少一些简单的东西。
    【解决方案2】:

    上面的答案是 5 年前,发生了巨大的变化。虽然它可能仍然有效,但它可以更容易。所以我再次回答这个问题。

    您只需将 EventTrigger 组件添加到您要单击的对象。并添加 Pointer Click 事件类型。

    然后只需添加脚本,它就可以工作了。(单击“+”,添加脚本附加的对象,然后选择函数)

    注意:此方法仅适用于Canvas内的对象,即该对象必须是UI对象,如本题所问的图像。

    【讨论】:

    • 感谢您,因为我仍在检查和学习所有不同的 Unity 位,因此我会选择其他答案。为什么你的只有 4 票? :)。
    • @TilleyTech 哈哈,也许是因为我刚回答了 3 个月。顺便说一句,很高兴我的回答对您有所帮助。
    猜你喜欢
    • 2023-03-31
    • 1970-01-01
    • 2012-03-15
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 2019-08-04
    • 2021-12-15
    • 2023-03-28
    相关资源
    最近更新 更多