button.OnClick侦听器触发两次

时间:2020-10-13 15:26:53

标签: c# android unity3d delegates scene-manager

我在场景中的播放按钮将当前菜单场景更改为实际的关卡场景。

我以代理人的形式添加了 listener 方法:

playLevel.onClick.AddListener(delegate { LoadLevel();})

在大多数情况下,它运行正常,但是有时当我单击按钮时,游戏会滞后一秒钟,并且可以再次单击该按钮,因此两次打开“关卡”场景。

有人对如何防止这种情况有任何想法吗?谢谢

1 个答案:

答案 0 :(得分:0)

有时:)?看起来您的按钮具有使用相同方法的多个侦听器。可能只是在同一游戏会话中您多次单击同一按钮。

您的代码: playLevel.onClick.AddListener(委托{LoadLevel();})

当您单击EVERYTIME时,此代码将您的方法块委托给侦听器。 我认为只需尝试playLevel.onClick.RemoveAllListeners()或使用playLevel.onClick.RemoveListener(-your actionCall-)删除一个特定的对象(如果您不想删除所有对象),然后再委派一个新的对象。