如何在Unity中对游戏对象进行运行时的单击事件监听

5

我希望我的问题不是重复的;在Unity中,我有很多Gameobjects(游戏对象)。 我需要在运行时为一个带有脚本的游戏对象添加onclicklistener(点击监听器)...

请帮忙。

1个回答

9

这里有一段代码,可以在运行时添加一个EventTrigger

YourGameObject.AddComponent(typeof(EventTrigger));
EventTrigger trigger = YourGameObject.GetComponent<EventTrigger>();
EventTrigger.Entry entry = new EventTrigger.Entry();
entry.eventID = EventTriggerType.PointerClick;
entry.callback.AddListener( (eventData) => { /* Your code here */ });
trigger.triggers.Add(entry);

2
虽然这是正确的,但值得注意的是,您应该在脚本中实现IPointerDownHandler,然后在运行时将该脚本附加到GameObject上。已知EventTrigger附加到GameObject上时会很慢,特别是在移动设备上。 - Programmer
1
@程序员 谢谢你指出来 :) - Ludovic Feltz
@LudovicFeltz 我的代码:GameObject.Find("r1").AddComponent(typeof(EventTrigger)); EventTrigger trigger = GameObject.Find("r1").GetComponent<EventTrigger>(); EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.PointerClick; entry.callback.AddListener((eventData) => {Debug.Log("on click attached");}); trigger.triggers.Add(entry); - ali karimifard
@程序员 嗨,我的兄弟……请帮帮我,那个解决方案对我没有用。 - ali karimifard
@EmerE 请帮忙。 - ali karimifard
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接