Unity中的图像的onClick事件

时间:2016-11-12 20:26:16

标签: c# unity3d onclick

是否可以在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”事件添加操作?

2 个答案:

答案 0 :(得分:24)

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

using UnityEngine.EventSystems;

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

命名空间UnityEngine.EventSystems为您提供IPointerClickHandler接口。单击图像后,OnPointerClick中的代码将会运行。

答案 1 :(得分:3)

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

您只需要做的是将 EventTrigger 组件添加到您要单击的对象中。并添加指针单击事件类型。 like this

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

注意:此方法仅适用于 Canvas 中的对象,换句话说,该对象必须是 UI 对象,例如此问题所问的图像。