unity学习(50)——服务器三次注册限制以及数据库化角色信息5--角色信息数据库化收尾

上一节内容结束后确实可以写入文件了,但还有两个问题:

1.一个是players.txt中,每次重启服务器,当注册新账号创建角色时,players.txt之前内容都会清空。

2.players.txt之前已经注册3次的账号,新注册的角色信息不会写入players.txt,猜测与userPlayerIds.txt中的残留内容有关。但userPlayerIds.txt中的内容感觉不全!

先解决第一个问题:上边 userPlayerIds.txt的内容是可以成功读出来并且转化的players.txt中的内容转化失败,所以此时就是空的

就是json转换结构体上出现了问题,账号那可以的,换到这就出问题了!

对比来看AccountModel和PlayerModel基本上大同小异

Newtonsoft.Json.JsonSerializationException:“Unable to find a constructor to use for type GameServer.model.PlayerModel. A class should either have a default constructor, one constructor with arguments or a constructor marked with the JsonConstructor attribute. Path '431b0501-457f-46ba-91dd-353c8a3c8c0c.id', line 3, position 9.” 

Newtonsoft。Json。JsonSerializationException:“找不到用于类型GameServer.model.PlayerModel的构造函数。类应该有一个默认构造函数、一个带参数的构造函数或一个用JsonConstructor属性标记的构造函数。路径'431b0501-457f-46ba-91dd-353c8a3c8c8c.id',第3行,位置9。”

就是PlayerModel类没有构造函数!

namespace GameServer.model
{internal class PlayerModel{public string id { get; set; }public string name { get; set; }public int job { get; set; }public int level { get; set; }public int exp { get; set; }public int atk { get; set; }public int def { get; set; }public int hp { get; set; }public int maxHp { get; set; }public Vector3 point { get; set; }public Vector4 rotation { get; set; }public int map { get; set; }public PlayerModel(PlayerModel model){this.job = model.job;this.level = model.level;this.exp = model.exp;this.atk = model.atk;this.def = model.def;this.hp = model.hp;this.maxHp = model.maxHp;}public PlayerModel(int job,int level,int exp,int atk,int def,int map,int hp,int maxHp){this.job = job;this.level = level;this.exp = exp;this.atk = atk;this.def = def;this.map = map;this.hp = hp;this.maxHp = maxHp;}}
}

很明显是有构造函数的,还有2个,没想到再加一个 

public PlayerModel()
 { }

的确是解决了!:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/519812.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BUUCTF-Misc2

wireshark1 1.打开附件 发现是流量包,放到Wireshark中分析 2.过滤 根据题目的提示寻找管理员登录的网站,从中获取密码 用http.request.methodPOST,过滤当前的 HTTP 请求为 POST 方法 3.查找 双击过滤后的流量包,查找管理员密码…

C# 高阶语法 —— Winfrom链接SQL数据库的存储过程

存储过程在应用程序端的使用的优点 1 如果sql语句直接写在客户端,以一个字符串的形式体现的,提示不友好,会导致效率降低 2 sql语句写在客户端,可以利用sql注入进行攻击,为了安全性,可以把sql封装在…

基于cnn卷积神经网络的车辆颜色检测识别-图像去雾-图像去雨(改进yolo目标检测-附代码)

– 引言: 开篇简述图像处理在智能交通监控、自动驾驶等领域的关键作用,并强调随着深度学习尤其是卷积神经网络(CNN)的发展,在复杂环境下的车辆颜色精确识别、图像恢复(如去雾和去雨)等难题得以…

CTP-API开发系列之五:SimNow环境介绍

CTP-API开发系列之五:SimNow环境介绍 CTP-API开发系列之五:SimNow环境介绍SimNow模拟测试环境第一套第二套登录关键字段可视化终端常见问题 CTP-API开发系列之五:SimNow环境介绍 如果你要研发一套国内期货程序化交易系统,从模拟测…

fasta文件与fastq文件相互转化Python脚本

fa文件与fq文件互相转换 今天分享的内容是fasta文件与fastq文件的基本知识,以及通过Python实现两者互相转换的方法。 测序数据公司给的格式通常是fq.gz,也就是fastq文件,计算机的角度来说,生物的序列属于一种字符串,就…

《汇编语言》- 读书笔记 - 第17章-使用 BIOS 进行键盘输入和磁盘读写

《汇编语言》- 读书笔记 - 第17章-使用 BIOS 进行键盘输入和磁盘读写 17.1 int9 中断例程对键盘输入的处理键盘缓冲区 17.2 使用 int 16h 中断例程读取键盘缓冲区编程检测点 17.1 17.3 字符串的输入编程:字符串输入程序需求分析处理过程子程序完整代码 17.4 应用 in…

干货分享③:免费制作产品管理系统!

他来了,他来了,他带着码上飞CodeFlying走来了!今天继续为大家带来一期干货分享,教大家如何免费使用码上飞来的开发产品管理系统 ! 一、登陆官网 码上飞 CodeFlying | AI 智能软件开发平台! 点击立即体验注…

官方教程 | 在 OpenBayes 平台进行组织协作

想和好 homie 共享账户余额、存储、数据集、模型、容器等资源,又不想共享自己的账户密码? 想跟团队成员分工协作、高效 Coding、加速炼丹,又想隔离权限、差异化管理? 经过为期半年的内测和完善,OpenBayes贝式计算的组织…

物体检测-系列教程23:YOLOV5 源码解析13 (SPP层、Flatten模块、Concat模块、Classify模块)

😎😎😎物体检测-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 点我下载源码 17、SPP模块 17.1 SPP类 SPP是一种特殊的池化策略,最初在YOLOv3-SPP中被使用…

AD20软件使用指南:拼板操作与Gerber文件生成详解

文章目录 一、前言二、拼板1.创建新的PCB,用于放置拼板文件2.放置拼板阵列3.设置阵列信息4.V割拼板,放置工艺边和定位孔和光点5.完成拼板 三、生成Gerber文件1.输出Gerber文件2.选择单位和格式3.选择输出的图层4.生成Gerber文件5.生成钻孔文件 四、上传嘉…

Pytorch学习 day06(torchvision中的datasets、dataloader)

torchvision的datasets 使用torchvision提供的数据集API,比较方便,如果在pycharm中下载很慢,可以URL链接到迅雷中进行下载(有些URL链接在源码里)代码如下: import torchvision # 导入 torchvision 库 # …

TC397 Tasking CMake Gitlab CI CD 环境配置

文章目录 Aurix Development Studio 新建工程与配置Tasking 环境配置CMake 集成Win CMake MinGW 安装Tasking Toolchain 工具链CMakeLists.txtPowershell 脚本 Gitlab CI CDGithub Link 本篇先演示了ADS新建激活编译工程, 讲述了浮点模型, 链接脚本文件, 静态库集成等的设置, 接…