当涉及到C#编程时,我仍然是新手(我通常使用Unityscript)。我已经成功地启动并运行了游戏中心插件,除了一件事...
当一个成就完成时,横幅就会出现,说明该成就已从游戏中心解锁。但是,如果在另一个游戏中再次满足对该成就的相同要求,则横幅将再次出现,即使它已经被满足。
现在我被告知,我应该使用getAchievements()来更新我的成就列表,并读取数据,我应该“循环通过这个事件”:
public static event Action<List<GameCenterAchievement>> achievementsLoaded;问题是,我不知道如何在事件中循环。这是我收到的唯一的反馈,尽管在unity论坛上有几次关于这个主题的绝望的请求。
谢谢你的建议。
发布于 2013-05-15 08:16:46
原始答案的意思是,您应该遍历该事件返回的成就列表。有关事件及其工作原理的更多信息,请参阅MSDN Events Tutorial。
实际上,您需要将具有适当签名的函数与该事件相关联,方法是将其附加到订阅者列表中。该关联将如下所示:
achievementsLoaded += (list) =>
{
foreach(var achievement in list)
{
....
}
}或者,如果您更喜欢使用成员函数:
void achievementsLoadedSubscriber(List<GameCenterAchievement> list)
{
foreach(var achievement in list)
{
...
}
}在你的类体中。然后,在其他地方设置系统时:
achievementsLoaded += achievementsLoadedSubscriber;注意没有括号,因为您实际上是将函数本身添加到列表中,而不是调用函数。
https://stackoverflow.com/questions/16554445
复制相似问题