首页 > 其他分享 >Unity 通过序列化和反序列化的方式创建深度拷贝Clone方法注意事项

Unity 通过序列化和反序列化的方式创建深度拷贝Clone方法注意事项

时间:2024-08-15 13:56:47浏览次数:7  
标签:序列化 stream Clone Serializable Unity var new formatter public

要将类标记为可序列化

  • 在类定义前添加 [Serializable] 属性。
[Serializable]
public class WorkorderAddData
{
    public int id;
    public Response response;

    [Serializable]
    public class Response
    {
        public int id;

        [Serializable]
        public class ImgJsonList
        {
            public int type;
        }

        public object Clone()
        {
            using (var stream = new MemoryStream())
            {
                var formatter = new BinaryFormatter();
                formatter.Serialize(stream, this);
                stream.Seek(0, SeekOrigin.Begin);
                return formatter.Deserialize(stream);
            }
        }
    }

    public object Clone()
    {
        using (var stream = new MemoryStream())
        {
            var formatter = new BinaryFormatter();
            formatter.Serialize(stream, this);
            stream.Seek(0, SeekOrigin.Begin);
            return formatter.Deserialize(stream);
        }
    }
}

标签:序列化,stream,Clone,Serializable,Unity,var,new,formatter,public
From: https://blog.csdn.net/teemoboy/article/details/141220488

相关文章

  • Java反序列化(一)——基础知识
    前言·攻击JavaWeb应用-[JavaWeb安全]Java类加载机制-知乎(zhihu.com)java反序列化基础-CSDN博客Java序列化-二进制格式详解_java序列化二进制特征-CSDN博客1类加载机制1.1概述    Java程序在运行钱需要先编译成.class文件,这个文件的内容被称为字节......
  • Java反序列化(二)——URLDNS链、CC1链
    0背景白日梦组长投稿视频-白日梦组长视频分享-哔哩哔哩视频(bilibili.com)实验环境Java:1.8.0_65IDEA:2022commons-collecetions:3.2.11URLDNS链分析    URLDNS并不能RCE,只是用来发起dns请求,一般用做初步探测,看能不能反序列化和出网。先给出利用链:GadgetChai......
  • Java反序列化(三)——CC6、CC3
    0背景白日梦组长投稿视频-白日梦组长视频分享-哔哩哔哩视频(bilibili.com)实验环境Java:1.8.0_65IDEA:2022commons-collecetions:3.2.11CC6    ysoserial中的CC6调用链如下:最下面的还是CC1中的LazyMap.get()。transform那里和CC1是代码一样的,只不过ysoserial这......
  • Java反序列化(四)——CC4、CC2
    0背景白日梦组长投稿视频-白日梦组长视频分享-哔哩哔哩视频(bilibili.com)实验环境Java:1.8.0_65IDEA:2022commons-collecetions:4.0        CommonsCollections4除4.0其他版本的 InvokerTransformer和InstantiateTransformer没有实现Serializable,导致该方......
  • Unity之UI穿透
    NGUI穿透NGUI出现穿透的时候,通过UICamera.hoveredobject进行判断是否是在UI上即可。问题方法UI穿透到了下方的非UI物体通过EventSystem.current.IsPointerOverGameObject(),if(!EventSystem.current.IsPointerOverGameObject())进行UI逻辑上一层UI穿透到下一层UI(常......
  • 乌尔章6500级超精细插画杰作:绝美女孩的惊艳细节,8K CGUnity壁纸,电影级光影下的羞涩笑容
    6500级乌尔章风格插画,绝美女孩细节惊人,高清CGUnity8K壁纸,光影电影级照明,棕色头发下的光滑肌肤与闪亮流苏上衣,白色高腰短裤,咖啡厅中羞涩微笑,湿润的快乐表情,浅蓝色眼睛,手放腿间,展现顶级品质的官方艺术作品。正向提示词ulzzang-6500,(original:1.2),(realistic:1.3)(m......
  • Unity编辑器批量设置图片格式
    在游戏开发中,经常需要批量设置图片的格式为Sprite类型,手动设置太麻烦,下面的编辑器脚本实现选中文件夹右键/Texture/SetAllImagesToSpriteType实现批量设置图片格式,具体格式参数可自行定义usingSystem;usingSystem.IO;usingUnityEngine;usingUnityEditor;///<summary>......
  • unity中, 二维平面上,求从点A出发,沿着方向B,与线段C的交点
    代码说明:点A:起始点。方向B:一个方向向量,表示从点A出发的方向。线段C:由两个点C1和C2定义。1usingUnityEngine;23publicclassLineIntersection:MonoBehaviour4{5//返回从点A出发,沿着方向B,与线段C的交点。如果没有交点,则返回null6publicstati......
  • Unity中利用遗传算法训练MLP
    Unity中利用遗传算法训练MLP梯度下降法训练神经网络通常需要我们给定训练的输入-输出数据,而用遗传算法会便捷很多,它不需要我们给定好数据,只需要随机化多个权重进行N次“繁衍进化”,就可以得出效果不错的网络。这种训练方式的好处就是不需要训练用的预期输出数据,适合那类可以简单......
  • 在Unity中开发MQTT客户端
    概述:        在Unity环境中使用MQTTnet库(一个流行的.NET库,用于实现MQTT客户端和服务器。它支持.NETCore和.NETFramework,并提供了灵活的API以及高性能的实现)搭建自己的MQTT客户端.我使用的版本:Version=4.3.6.1152        但是在开发客户端之前,你需要......