首页 > 解决方案 > 有没有办法将函数调用及其参数排队以供以后调用?

问题描述

有没有办法在玩家离线时将函数调用及其变量参数存储到数据库中,并在玩家重新在线时再次调用它们。

你好!我正在开发一个新游戏(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();
}

标签: c#functionparameters

解决方案


我认为最有意义的方法是将函数作为对象存储在数据库中,然后再检索它。

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();
}

推荐阅读