在C#编程方面,我还是新手(我通常使用Unityscript)。我已经成功运行了Game Center插件,除了一件事......
当一项成就完成后,横幅就会显示为应该从游戏中心解锁成就。但是,如果在另一场比赛中再次满足该成就的相同要求,则横幅会再次显示,即使已经完成了。
现在我被告知我应该让Achievements()更新我遇到的成就列表,并且读取数据,我应该“循环这个事件”:
public static event Action<List<GameCenterAchievement>> achievementsLoaded;
问题是,我不知道如何循环事件。这是我收到的唯一反馈,尽管在团结论坛上有几个绝望的请求帮助。
感谢您的任何建议。
答案 0 :(得分:1)
原始答案意味着您应该遍历该事件返回的成就列表。要更熟悉事件及其工作原理,请参阅MSDN Events Tutorial。
基本上,您希望通过将函数附加到订阅者列表,将函数与该事件的相应签名相关联。该关联看起来像这样:
achievementsLoaded += (list) =>
{
foreach(var achievement in list)
{
....
}
}
或者,如果您更喜欢使用成员函数:
void achievementsLoadedSubscriber(List<GameCenterAchievement> list)
{
foreach(var achievement in list)
{
...
}
}
在你的课堂上。然后,在您设置系统的其他地方:
achievementsLoaded += achievementsLoadedSubscriber;
请注意缺少括号,因为您实际上是将函数本身添加到列表中,而不是调用函数。