c# - 有没有办法将函数调用及其参数排队以供以后调用?
问题描述
有没有办法在玩家离线时将函数调用及其变量参数存储到数据库中,并在玩家重新在线时再次调用它们。
你好!我正在开发一个新游戏(unity c#),它让玩家穿过几乎没有接待的区域。播放器找到代码字并将其输入到字段中以解锁内容。同时我想为每个用户记录触发的代码字。问题是连接可能会在会话期间丢失。我设法为每次播放器在断开连接时输入代码字时的功能排队,但在再次接收后,播放器只发送最后一个条目。非常感谢您的帮助!
public void NotConnected()
{
CallsOnQueue.Add( () => StartCoroutine(TestCodeword()));
}
public void BackOnline()
{
if (CallsOnQueue.Count == 0)
{
LookforCodewordInDB();
}
else
{
foreach (Action item in Callsonqueue)
StartCoroutine(TestCodeword(teamname, codeword, city, date));
}
Callsonqueue.Clear();
}
解决方案
我认为最有意义的方法是将函数作为对象存储在数据库中,然后再检索它。
public class MyFunction{
string FuncionName { get; set; }
public string Param1 { get; set; }
public string Param2 { get; set; }
//more params
}
那么您可以使用比较运算符来调用适当的方法。
switch (storedFunction.FunctionName)
{
case "myFunction":
myFunction();
}
推荐阅读
- git - Github突然表现不佳
- javascript - 如何通过 Node.js/AdonisJs 从 Neo4j 查询结果发送 CSV 数据
- typescript - 在 TypeScript 中使用变量值作为类型
- wpf - WPF 从另一个 DLL 中的 UserControl 派生
- php - Symfony - 使用 microsoft graph api 从共享点下载文件会导致空文件
- flutter - Flutter 我可以在下拉小部件中更改语言吗?
- python-3.x - 在python3中定义多个严格的返回类型
- registry - 在 topshelf 中读取和写入注册表
- python - 递归地将两个链表中的一个节点组合成一个节点以构建一个新的链表
- python - 如何在 CDK (python) 中正确编码 AWS ALB 重定向