private void AddTriggersListener(GameObject obj, EventTriggerType eventID, UnityAction<BaseEventData> action)
    {
        EventTrigger trigger = obj.GetComponent<EventTrigger>();
        if (trigger == null)
        {
            trigger = obj.AddComponent<EventTrigger>();
        }

        if (trigger.triggers.Count == 0)
        {
            trigger.triggers = new List<EventTrigger.Entry>();
        }

        UnityAction<BaseEventData> callback = new UnityAction<BaseEventData>(action);
        EventTrigger.Entry entry = new EventTrigger.Entry();
        entry.eventID = eventID;
        entry.callback.AddListener(callback);
        trigger.triggers.Add(entry);
    }

上面这个函数是重点中的重点

用法如下

public GameObject showImg;

    // Use this for initialization
    void Start () {
 
        AddTriggersListener(showImg.gameObject,EventTriggerType.PointerClick,resetFunc);

    }

    private void resetFunc(BaseEventData data)
    {
        showImg.SetActive(false);
    }

 

要挂载 EventTrigger的物体,需要添加Collider碰撞器

 

Camera上需要挂载 Physics Raycaster脚本

 

posted on 2018-11-30 12:47  凌落成迷  阅读(278)  评论(0编辑  收藏  举报