首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unity4和Prime31游戏中心插件事件

Unity4和Prime31游戏中心插件事件
EN

Stack Overflow用户
提问于 2013-05-15 07:33:31
回答 1查看 296关注 0票数 0

当涉及到C#编程时,我仍然是新手(我通常使用Unityscript)。我已经成功地启动并运行了游戏中心插件,除了一件事...

当一个成就完成时,横幅就会出现,说明该成就已从游戏中心解锁。但是,如果在另一个游戏中再次满足对该成就的相同要求,则横幅将再次出现,即使它已经被满足。

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

代码语言:javascript
复制
public static event Action<List<GameCenterAchievement>> achievementsLoaded;

问题是,我不知道如何在事件中循环。这是我收到的唯一的反馈,尽管在unity论坛上有几次关于这个主题的绝望的请求。

谢谢你的建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-15 08:16:46

原始答案的意思是,您应该遍历该事件返回的成就列表。有关事件及其工作原理的更多信息,请参阅MSDN Events Tutorial

实际上,您需要将具有适当签名的函数与该事件相关联,方法是将其附加到订阅者列表中。该关联将如下所示:

代码语言:javascript
复制
achievementsLoaded += (list) =>
{
    foreach(var achievement in list)
    {
         ....
    }
}

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

代码语言:javascript
复制
void achievementsLoadedSubscriber(List<GameCenterAchievement> list)
{
    foreach(var achievement in list)
    {
        ...
    }
}

在你的类体中。然后,在其他地方设置系统时:

代码语言:javascript
复制
achievementsLoaded += achievementsLoadedSubscriber;

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16554445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档