0

在 C# 编程方面我还是新手(我通常使用 Unityscript)。我已经成功启动并运行了 Game Center 插件,除了一件事......

完成成就后,会出现横幅,说明该成就已从 Game Center 解锁。但是,如果在另一场比赛中再次满足该成就的相同要求,则横幅会再次出现,即使它已经被满足。

现在我被告知我应该 getAchievements() 来更新我的成就列表,并读取数据,我应该“循环通过这个事件”:

public static event Action<List<GameCenterAchievement>> achievementsLoaded;

问题是,我不知道如何循环事件。这是我收到的唯一反馈,尽管在统一论坛上多次寻求帮助。

感谢您的任何建议。

4

1 回答 1

1

原始答案的意思是您应该遍历该事件返回的成就列表。要更熟悉事件及其工作方式,请参阅MSDN 事件教程

本质上,您将希望通过将具有适当签名的函数附加到订阅者列表来将其与该事件相关联。该关联将如下所示:

achievementsLoaded += (list) =>
{
    foreach(var achievement in list)
    {
         ....
    }
}

或者,如果您更喜欢使用成员函数:

void achievementsLoadedSubscriber(List<GameCenterAchievement> list)
{
    foreach(var achievement in list)
    {
        ...
    }
}

在你的班级里。然后,在其他地方设置系统时:

achievementsLoaded += achievementsLoadedSubscriber;

请注意缺少括号,因为您实际上是将函数本身添加到列表中,而不是调用函数。

于 2013-05-15T00:16:45.710 回答