zoukankan      html  css  js  c++  java
  • 在Unity中使用C#的深度拷贝

    网上看到别人在写这样一个方法,就尝试能够在Unity中使用该方法。

    记住要使用的程序包:

    using System.IO;
    using System.Runtime.Serialization.Formatters.Binary;
    
    public object DeepCopy(object src)
    {
    MemoryStream ms = new MemoryStream();
    BinaryFormatter bf = new BinaryFormatter();
    bf.Serialize(ms, src);
    
    ms.Seek(0, SeekOrigin.Begin);
    object dst = bf.Deserialize(ms);
    ms.Close();
    return dst;
    }

    测试代码如下:

    int[] temp = new int[] {1,2,3 };
    
            int[] copy = (int[])DeepCopy(temp);
    
            copy[1]=34;
            Debug.Log(copy[0]+":"+copy[1]+"--"+temp[0]+":"+temp[1]);

    测试结果如下:

    1:34--1:2

    深度拷贝成功,这是使用对象序列化的方法实现的深度拷贝!

  • 相关阅读:
    github
    mysql安装和应用
    11月9日(visio安装很坑)
    11月4日
    11月3日
    10月29日
    10月26日
    10月25日
    9月29日
    9月28日
  • 原文地址:https://www.cnblogs.com/peiandsky/p/2489621.html
Copyright © 2011-2022 走看看