Unity4和Prime31游戏中心插件事件

时间:2013-05-14 23:33:31

标签: c# unity3d game-center unityscript

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

当一项成就完成后,横幅就会显示为应该从游戏中心解锁成就。但是,如果在另一场比赛中再次满足该成就的相同要求,则横幅会再次显示,即使已经完成了。

现在我被告知我应该让Achievements()更新我遇到的成就列表,并且读取数据,我应该“循环这个事件”:

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

问题是,我不知道如何循环事件。这是我收到的唯一反馈,尽管在团结论坛上有几个绝望的请求帮助。

感谢您的任何建议。

1 个答案:

答案 0 :(得分:1)

原始答案意味着您应该遍历该事件返回的成就列表。要更熟悉事件及其工作原理,请参阅MSDN Events Tutorial

基本上,您希望通过将函数附加到订阅者列表,将函数与该事件的相应签名相关联。该关联看起来像这样:

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

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

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

在你的课堂上。然后,在您设置系统的其他地方:

achievementsLoaded += achievementsLoadedSubscriber;

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