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

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

作者: UnityPlane | 来源:发表于2017-11-19 16:57 被阅读123次

    熟悉 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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/gdhpvxtx.html