Unity使用DiscordGameSDK遇CS8124错误:Tuple需至少两个元素
解决Unity中Discord Game SDK的CS8124错误
错误原因
CS8124错误(Tuple必须包含至少两个元素)的核心原因是:Discord Game SDK的ActivityManager.UpdateActivity方法要求回调委托接收两个参数(Result类型的执行结果,以及一个字符串类型的错误信息),但你的代码里只声明了一个参数res。编译器会将单个参数的括号解析为单元素元组,而C#不允许单元素元组,因此触发该错误。
修复代码
修改UpdateRichPresence方法中的回调参数列表,添加第二个参数(可以用下划线_表示忽略该参数,避免未使用变量的警告):
public void UpdateRichPresence() { ActivityManager activityManager = discord.GetActivityManager(); Activity activity = new() { Details = "Playing Adventure Masters", State = "In main menu" }; // 修改回调参数,添加第二个参数 activityManager.UpdateActivity(activity, (res, _) => { if(res == Result.Ok) { Debug.Log("Ustawiono status"); } else { Debug.LogError("Nie ustawiono statusu Discord"); } }); }
额外检查
- 确保你的Unity项目使用的.NET版本支持目标类型
new()表达式(即C# 9.0及以上),如果版本较低,将Activity activity = new()改为Activity activity = new Activity()。 - 确认Discord Game SDK的版本与你参考的教程版本一致,避免因API变更导致的参数不匹配问题。
内容的提问来源于stack exchange,提问作者Miłosz
相关产品推荐
相关产品推荐

