我实施google play sdk到我的安卓游戏,到目前为止我已经完成登录和排行榜部分,但添加成就让我有点麻烦,因为我使用公共bool方法让我的生活更轻松,以便将来更新并标记成就解锁。
出于某种原因我得到了这个错误:
无法隐式转换类型bool' to
void'
public bool unlockAchievement(string achievementName, string achievementID) {
if(loggedIn == true) {
Social.ReportProgress(achievementID, 100.0f, (bool success) => {
return success;
});
}
else return false;
}
我认为我已经涵盖了任何松散的目标,但我却得到了这个错误。
感谢任何帮助。 谢谢。
修改
接缝就像这样工作
public bool unlockAchievement(string achievementName, string achievementID) {
bool actionDone = false;
if(loggedIn == true) {
Social.ReportProgress(achievementID, 100.0f, (bool success) => {
if(success) actionDone = true;
else actionDone = false;
});
return actionDone;
}
else return actionDone;
}
谢谢
答案 0 :(得分:1)
你的lambda是一个封闭的方法,因此return语句的上下文是lambda方法,而不是unlockAchievement
。
您可能希望重构代码以使用回调,例如:
public void unlockAchievement(string achievementName, string achievementID, Action<bool> callback) {
if(loggedIn == true) {
Social.ReportProgress(achievementID, 100.0f, (bool success) => {
callback(success);
});
}
else callback(false);
}