如何在运行时将onclick侦听器添加到游戏对象统一[重复]

Posted

技术标签:

【中文标题】如何在运行时将onclick侦听器添加到游戏对象统一[重复]【英文标题】:how to add onclick listener to a gameobject in runtime In unity [duplicate] 【发布时间】:2017-10-02 14:07:43 【问题描述】:

我希望我的问题没有重复;我有很多 Gameobjects 团结一致。 我需要在运行时将onclicklistener 添加到带有脚本的游戏对象中......

请帮忙。

【问题讨论】:

【参考方案1】:

这是在运行时添加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);

【讨论】:

虽然这是正确的,但值得注意的是,您应该在脚本中实现IPointerDownHandler,然后在运行时将该脚本附加到游戏对象。众所周知,EventTrigger 在附加到游戏对象时会很慢,尤其是在移动设备上。 @Programmer 感谢您指出这一点:) Np 但这个答案也应该知道,所以我投票赞成以确保它不会被删除。 @LudovicFeltz hi ludvic ....我使用这个 solotion 但不适合我 @LudovicFeltz 我的代码:GameObject.Find ("r1").AddComponent(typeof(EventTrigger)); EventTrigger trigger = GameObject.Find ("r1").GetComponent (); EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.PointerClick; entry.callback.AddListener ((eventData) => Debug.Log ("on click attach");); trigger.triggers.Add(入口);

以上是关于如何在运行时将onclick侦听器添加到游戏对象统一[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在循环中单击另一个元素时将事件侦听器添加到元素

按钮 onClick 事件侦听器在 Electron 应用程序中不起作用

如何使用事件侦听器将类切换到单个列表项

是否可以将 onclick 侦听器添加到 QCheckBox?

将 onclick 侦听器添加到预定义按钮?

如何在声明时将项目添加到哈希表? [复制]