专栏首页Unity TechnologyJtro的技术分享:类的序列化,与修改.bin文件来得到游戏中你想要的

Jtro的技术分享:类的序列化,与修改.bin文件来得到游戏中你想要的

熟悉 unity的人都知道序列化是什么了,这个不用解释了,直接上车

bin文件这个操作简单,但是做这个就有点像做外挂的味道了,我不会做外挂,但是你们可以用这个方法做一个试试-_-|| 首先打开vs或者mono新建一个控制台工程,新建一个类并序列化

 [Serializable]//类的序列化
    class Player
    {
        public int coin = 0;
        public int money = 0;
        public string name = "";
    }

引入如下的命名空间

using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;

在Main方法中写如下的代码为的是创建一个bin文件

 //序列化
            //Player player = new Player();
            //player.coin = 1;
            //player.money = 10;
            //player.name = "Jtro";
            //IFormatter formatter = new BinaryFormatter();
            //Stream stream = new FileStream("data.bin", FileMode.Create, 
            //                              FileAccess.Write, FileShare.None);
            //formatter.Serialize(stream, player);
            //stream.Close();

运行一次,然后注释掉,然后你就可以在工程目录下看到你创建的bin文件了 然后在Main方法中写下如下的代码解析bin文件,这个操作有点像之前发布的TXT文本读写,敲代码原理都一样

//反序列化
            IFormatter formatter = new BinaryFormatter();
            Stream stream = new FileStream("data.bin", FileMode.Open, 
                                        FileAccess.Read, FileShare.Read);
            Player player = (Player)formatter.Deserialize(stream);
            stream.Close();
            //输出验证
            Console.WriteLine("coin :"+ player.coin);
            Console.WriteLine("money :"+player.money );
            Console.WriteLine("name :"+player.name);
            Console.ReadLine();

再次运行本程序,发现解析出来bin文件,到这里,游戏里面有些记录属性的bin文件修改什么的我可不知道。。。。

解析bin.PNG

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Jtro的技术分享:UNITY请求JAVA服务器接口

    现在有许多的服务器是用java写的,所以就需要我们请求java服务器的接口,java提供的服务器长这样:

    LittleU
  • Jtro的技术分享:c#多态

    多态的作用就是把不同的子类都当作父类来看,通过继承实现不同的不同对象相同方法,表现出不同的行为,写出通用的代码,做出通用的编程,以适应需求的不断变化。

    LittleU
  • Jtro的技术分享:游戏客户端通过Mysql留言给另一台游戏客户端

    首先,需要编码前的准备,第一个就是下载Mysql,配置好环境,安装Mysql的时候要记住自己设置的用户名和密码。然后下载本人提供的dll文件,下载连接放在评论区...

    LittleU
  • iOS Quartz2D相关方法

    View内部有个layer(图层)属性,drawRect:方法中取得的是一个Layer Graphics Context,因此,绘制的东西其实是绘制到view的...

    剑行者
  • 用ABAP操作zip文件

    Jerry Wang
  • Excel公式技巧56:获取最大值/最小值所在的单元格地址

    在《Excel公式技巧54:在多个工作表中查找最大值最小值》中,我们在MAX/MIN函数中使用多工作表引用来获取最大值/最小值。在《Excel公式技巧55:查找...

    fanjy
  • 机器学习第7天:深入了解逻辑回归

    简单来说, 逻辑回归(Logistic Regression)是一种用于解决二分类(0 or 1)问题的机器学习方法,用于估计某种事物的可能性。比如某用户购买某...

    明天依旧可好
  • 利用Androidstudio开发Java工程图文详解

    作为一名安卓开发工作者,有时候希望可以借助简单的Java程序来验证或测试一些代码,目前Androidstudio开发工具越来越火,但是很遗憾在使用了as一年后才...

    fanfan
  • linux服务器搭建之路4-开机自动挂载ntfs硬盘

    我们都知道,linux本身是不支持nfts硬盘挂载的,不过在工具ntfs-3g的支持下,可以实现这个功能。

    锦小年
  • SpringBoot使用事务

    dalaoyang

扫码关注云+社区

领取腾讯云代金券