【问题标题】:No overload for method `CharacterSave' takes `1' arguments方法“CharacterSave”没有重载采用“1”参数
【发布时间】:2017-08-17 17:18:47
【问题描述】:

当我将项目升级到最新的 Unity 版本时出现此错误..

不知道我错了哪一部分。但这是我的代码片段

CharacterModule.cs

var prefab = Instantiate(characterData).GetComponent<Player>();
prefab.name = characterName;
prefab.account = user.Username;
prefab.className = request.ClassName;
prefab.transform.position = gameConfig.startPosition;
prefab.health = prefab.healthMax;
prefab.mana = prefab.manaMax;
Database.CharacterSave(prefab);
Destroy(prefab.gameObject);

var gameUser = GameUserModule.Database.Get(user.Username);
if (gameUser == null)
{

GameMapnetwork.cs

        // add to client
    NetworkServer.AddPlayerForConnection(connection, go, 0);
}

public void SaveCharacters()
{
    if (!NetworkServer.active)
        return;

    Database.CharacterSaveMany(Player.onlinePlayers.Values.ToList());
}

public void SaveCharacter(Player player)
{
    Database.CharacterSave(player);
}

GameModule.cs

var go = Database.CharacterLoad(name, GameConfig.Instance.GetPlayerClasses());
if (go == null)
{
    message.Respond("Character not found", ResponseStatus.Failed);
    return;
}
var player = go.GetComponent<Player>();

var gameUser = gameUserDatabase.Get(user.Username);
if (gameUser == null)
{
    gameUser = GameUserModule.Database.CreateObject(user.Username);
    gameUserDatabase.Insert(gameUser);
}
gameUser.SelectedCharacter = name;
gameUserDatabase.Update(gameUser);

string resultMap = player.savedCurrentMap;
Vector3 resultPosition = player.transform.position;

if (string.IsNullOrEmpty(resultMap))
{
    resultMap = player.savedCurrentMap = GameConfig.Instance.startScene;
    resultPosition = player.transform.position = GameConfig.Instance.startPosition;
    Database.CharacterSave(player);
}

Destroy(player.gameObject);

if (mapCallback != null)
    mapCallback(resultMap, resultPosition);

这是我的代码的一部分。我不知道哪一部分是错的。非常感谢您的帮助!

【问题讨论】:

  • 欢迎,请分享更多您的代码,而不仅仅是那部分。至少显示您定义和初始化播放器的部分

标签: c# unity3d


【解决方案1】:

基本上,您提到的错误是在告诉您,您没有定义一个名为 CharacterSave 的方法,其参数列表中只有一个参数。比如:

CharacterSave(paramType paramName)

你应该告诉我们你在哪里实现了这个方法:

CharacterSave(...)

也可能是您只是将名称与重载方法 SaveCharacters 混为一谈:

SaveCharacters()
SaveCharacter(Player player)

【讨论】:

  • 谢谢,我设置了我的 CharacterSave(player, true) ,非常感谢现在它已修复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-23
  • 2013-04-23
  • 1970-01-01
相关资源
最近更新 更多